IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Breaking changes from 7.x
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
Breaking changes from 7.x
editThis major release is a complete new PHP client for Elasticsearch. We build it from scratch! We tried to reduce the BC breaks as much as possible but there are some (big) differences:
Architectural changes
edit-
we changed the namespace, now everything is under
Elastic\Elasticsearch - we used the elastic-transport-php library for HTTP communications;
-
we changed the
Exceptionmodel, using the namespaceElastic\Elasticsearch\Exception. All the exceptions extends theElasticsearchExceptioninterface, as in 7.x - we changed the response type of each endpoint using an Elasticsearch response class. This class wraps a PSR-7 response allowing the access of the body response as array or object. This means you can access the API response as in 7.x, no BC break here! :angel:
-
we changed the
ConnectionPoolinNodePool. Theconnectionnaming was ambigous since the objects are nodes (hosts)
Specific changes
editThe following functions has been removed:
-
ClientBuilder::getEndpoint() -
ClientBuilder::getRegisteredNamespacesBuilders() -
ClientBuilder::getRegisteredNamespacesBuilders() -
ClientBuilder::defaultHandler() -
ClientBuilder::multiHandler() -
ClientBuilder::singleHandler() -
ClientBuilder::setConnectionFactory() -
ClientBuilder::setConnectionPool(), you can useClientBuilder::setNodePoolinstead -
ClientBuilder::setEndpoint() -
ClientBuilder::registerNamespace() -
ClientBuilder::setTransport(), you can specify an HTTP PSR-18 client usingClientBuilder::setHttpClient() -
ClientBuilder::setHandler() -
ClientBuilder::setTracer(), you can only set a Logger usingClientBuilder::setLogger() -
ClientBuilder::setSerializer() -
ClientBuilder::setConnectionParams(), you can useClientBuilder::setHttpClientOptions()instead -
ClientBuilder::setSelector(), you can set aSelectorusing thesetNodePool, see here for more information -
ClientBuilder::setSniffOnStart() -
ClientBuilder::includePortInHostHeader()
We removed the special client parameter passed in $params endpoints. In details:
-
$params['client']['never_retry'] -
$params['client']['verbose'] -
$params['client']['port_in_header'] -
$params['client']['future'], you can set HTTP async usingClient::setAsync(true) -
$params['client']['ignore'], you can disable the Exception usingClient::setResponseException(false)