7.x 版本的重大变更
编辑7.x 版本的重大变更
编辑此主要版本是 Elasticsearch 的一个全新的 PHP 客户端。我们从头开始构建它!我们尽量减少了向后兼容性中断,但仍然存在一些(重大)差异。
架构变更
编辑- 我们更改了命名空间,现在所有内容都在
Elastic\Elasticsearch
下。 - 我们使用 elastic-transport-php 库进行 HTTP 通信;
- 我们更改了
Exception
模型,使用命名空间Elastic\Elasticsearch\Exception
。所有异常都扩展了ElasticsearchException
接口,与 7.x 版本相同。 - 我们使用 Elasticsearch 响应类更改了每个端点的响应类型。此类包装了 PSR-7 响应,允许访问正文响应作为数组或对象。这意味着您可以像在 7.x 版本中一样访问 API 响应,此处没有向后兼容性中断!: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()
设置日志记录器。 -
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)
禁用异常。