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.
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(),
// ...
);
}
# 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
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
You can now use service elastica.default_client
or elastica.my_other_client
$client = $container->get('elastica.default_client');
Symfony 3.3 have introduced support for services autowiring. To be able to autowire Elastica connection into your services you need to setup your client configuration with a name default
. In a case if you have multiple connections - only default
connection will be enabled for autowiring because services autowiring is resolved by class names.
Autowiring support is enabled by default, but if you need to disable it for some reason - you can do it by set autowire: false
parameter:
# app/config/config.yml
elastica:
autowire: false
clients:
default:
host: 127.0.0.1
port: 9200
Clone this repository (or a fork). You should have php>=5.6
and composer
installed.
make test-unit
Feel free to contribute, see CONTRIBUTING.md file for more informations.