happyr/elastica-dsn

DSN support to ruflin/Elastica

0.1.1 2020-01-21 16:24 UTC

This package is auto-updated.

Last update: 2024-04-25 01:08:01 UTC


README

Latest Version Software License Build Status Code Coverage Quality Score Total Downloads

This package contains a factory method to create a Elasticsearch client from ruflin/elastica. The factory supports DSN to ease config with a dependency injection container.

Install

composer require happyr/elastica-dsn

Examples

use Happyr\ElasticaDsn\ClientFactory;

$client = ClientFactory::create('elasticsearch://localhost');
$client = ClientFactory::create('elasticsearch:?host[localhost]&host[localhost:9201]&host[127.0.0.1:9202]');
$client = ClientFactory::create('elasticsearch://foo:bar@localhost:1234');
$client = ClientFactory::create('elasticsearch://localhost:9201', ['username' => 'foo', 'password' => 'bar']);

If you use Symfony service config:

services:
    Elastica\Client:
        factory: 'Happyr\ElasticaDsn\ClientFactory::create'
        arguments: ['elasticsearch://localhost']

If you want to configure the client even more, you may just get the config array from the ClientFactory and instantiate the client yourself.

use Elastica\Client;
use Happyr\ElasticaDsn\ClientFactory;

$config = ClientFactory::getConfig('elasticsearch://localhost');

// Add more stuff to $config array
$client = new Client($config);