Breaking changes from 7.x
editBreaking 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
Exception
model, using the namespaceElastic\Elasticsearch\Exception
. All the exceptions extends theElasticsearchException
interface, 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
ConnectionPool
inNodePool
. Theconnection
naming 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::setNodePool
instead -
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 aSelector
using 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)