7.x 版本的重大更改
编辑7.x 版本的重大更改
编辑此主要版本是 Elasticsearch 的一个全新的 PHP 客户端。我们是从头开始构建的!我们试图尽可能减少 BC 中断,但仍然存在一些(大的)差异
架构变更
编辑- 我们更改了命名空间,现在所有内容都在
Elastic\Elasticsearch
下 - 我们使用 elastic-transport-php 库进行 HTTP 通信;
- 我们更改了
Exception
模型,使用命名空间Elastic\Elasticsearch\Exception
。所有异常都扩展了ElasticsearchException
接口,与 7.x 中一样 - 我们更改了每个端点的响应类型,使用 Elasticsearch 响应类。此类包装了一个 PSR-7 响应,允许以数组或对象的形式访问主体响应。这意味着您可以像在 7.x 中一样访问 API 响应,这里没有 BC 中断!:angel
- 我们将
ConnectionPool
更改为NodePool
。connection
命名是模糊的,因为对象是节点(主机)
具体更改
编辑以下函数已被删除
-
ClientBuilder::getEndpoint()
-
ClientBuilder::getRegisteredNamespacesBuilders()
-
ClientBuilder::getRegisteredNamespacesBuilders()
-
ClientBuilder::defaultHandler()
-
ClientBuilder::multiHandler()
-
ClientBuilder::singleHandler()
-
ClientBuilder::setConnectionFactory()
-
ClientBuilder::setConnectionPool()
,您可以使用ClientBuilder::setNodePool
代替 -
ClientBuilder::setEndpoint()
-
ClientBuilder::registerNamespace()
-
ClientBuilder::setTransport()
,您可以使用ClientBuilder::setHttpClient()
指定 HTTP PSR-18 客户端 -
ClientBuilder::setHandler()
-
ClientBuilder::setTracer()
,您只能使用ClientBuilder::setLogger()
设置 Logger -
ClientBuilder::setSerializer()
-
ClientBuilder::setConnectionParams()
,您可以使用ClientBuilder::setHttpClientOptions()
代替 -
ClientBuilder::setSelector()
,您可以使用setNodePool
设置Selector
,有关更多信息,请参阅此处 -
ClientBuilder::setSniffOnStart()
-
ClientBuilder::includePortInHostHeader()
我们删除了在 $params
端点中传递的特殊 client
参数。详细来说
-
$params['client']['never_retry']
-
$params['client']['verbose']
-
$params['client']['port_in_header']
-
$params['client']['future']
,您可以使用Client::setAsync(true)
设置 HTTP 异步 -
$params['client']['ignore']
,您可以使用Client::setResponseException(false)
禁用异常