m6web / elasticsearch-bundle
基于 elasticsearch/elasticsearch-php 的 Symfony2 Bundle
v4.1.0
2023-08-08 13:58 UTC
Requires
- php: >=7.4
- ext-json: *
- elasticsearch/elasticsearch: ^5.1.0||^6.0.0||^7.0
- symfony/config: ^4.4||^5.0||^6.0
- symfony/dependency-injection: ^4.4||^5.0||^6.0
- symfony/event-dispatcher: ^4.4||^5.0||^6.0
- symfony/http-foundation: ^4.4||^5.0||^6.0
- symfony/http-kernel: ^4.4||^5.0||^6.0
- symfony/yaml: ^4.4||^5.0||^6.0
Requires (Dev)
- atoum/atoum: ^4.0
- m6web/php-cs-fixer-config: ^2.0
README
在 Symfony 项目中集成 Elasticsearch 官方 PHP 客户端。
功能
此包根据应用程序配置中的设置创建一个或多个 Elasticsearch 客户端服务。
用法
安装
首先,您必须将包添加到您的 composer.json
"require": { "m6web/elasticsearch-bundle": "dev-master" }
然后在您的 AppKernel
类中注册该包
<?php public function registerBundles() { $bundles = array( // ... new M6Web\Bundle\ElasticsearchBundle\M6WebElasticsearchBundle(), ); // ... }
配置
在您的 config.yml
中,您可以配置一个或多个 Elasticsearch 客户端
m6web_elasticsearch: default_client: my_client clients: my_client: hosts: - 'localhost:9200' - 'http://other_host:9201' my_other_client: hosts: - 'other_server:9200'
从该配置,包将创建两个服务
m6web_elasticsearch.client.my_client
,它将连接到两个 Elasticsearch 实例:端口 9200 的localhost
和端口 9201 的other_host
m6web_elasticsearch.client.my_other_client
,它将连接到一个 Elasticsearch 实例:端口 9200 的other_server
它还将创建 m6web_elasticsearch.client.default
,它是 m6web_elasticsearch.client.my_client
的别名
附加配置
每个客户端都可以有额外的配置参数,这些参数将用于实例化 \Elasticsearch\Client
。例如
m6web_elasticsearch: clients: my_client: hosts: - 'https://username:password@localhost:9200' headers: 'Accept-Encoding': ['gzip'] retries: 2 logger: monolog.logger.custom connectionPoolClass: '\Elasticsearch\ConnectionPool\StaticConnectionPool' selectorClass: '\Elasticsearch\ConnectionPool\Selectors\RandomSelector' connectionParams: client: timeout: 3 connect_timeout: 1
事件
该包分发包含有关 Elasticsearch 请求的各种信息的 \M6Web\Bundle\ElasticsearchBundle\EventDispatcher\ElasticsearchEvent
事件。
事件以 m6web.elasticsearch
的名称触发。
测试
您可以使用以下命令启动单元测试
./vendor/bin/atoum
许可证
ElasticsearchBundle 根据 MIT 许可证 许可。