gbprod/elastica-bundle

Really simple bundle to use Elastica within Symfony applications

v1.0.1 2017-08-08 09:45 UTC

README

Build Status codecov Scrutinizer Code Quality Dependency Status

Latest Stable Version Total Downloads Latest Unstable Version License

Really simple bundle to use elastica within Symfony applications. Allows you to create elastica service in Symfony application. The aim is to create a ligthweigth alternative to FOSElasticaBundle, because sometimes, we don't need all that stuffs.

Installation

Download bundle using composer :

composer require gbprod/elastica-bundle

Declare in your app/AppKernel.php file:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new GBProd\ElasticaBundle\ElasticaBundle(),
        // ...
    );
}

Configuration

Clients

# app/config/config.yml
elastica:
    clients:
        default:
            host: 127.0.0.1
            port: 9200
        other_client:
            host: 127.0.0.1
            port: 9201

If using a cluster:

# app/config/config.yml
elastica:
    clients:
        default:
            connections:
                - { host: localhost, port: 9200 }
                - { host: localhost, port: 9201 }

Available options: host, port, path, url, proxy, transport, persistent, timeout and proxy

Custom logger

By default, this bundle logs queries using the Symfony's default logger (@logger) into an elastica channel.

You can use a customized logger with the logger configuration option:

# app/config/config.yml
elastica:
    logger: my_custom_logger_service_id
    clients:
        default:
            host: 127.0.0.1
            port: 9200

Usage

You can now use service elastica.default_client or elastica.my_other_client

$client = $container->get('elastica.default_client');

Tests

Clone this repository (or a fork). You should have php>=5.6 and composer installed.

make test-unit

Contributing

Feel free to contribute, see CONTRIBUTING.md file for more informations.