This documentation contains work-in-progress information for future Elastic Stack and Cloud releases. Use the version selector to view supported release docs. It also contains some Elastic Cloud serverless information. Check out our serverless docs for more details.
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)