Skip to content

Latest commit

 

History

History
87 lines (64 loc) · 4.6 KB

BREAKING_CHANGES.md

File metadata and controls

87 lines (64 loc) · 4.6 KB

8.0

This 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:

  • 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 namespace Elastic\Elasticsearch\Exception. All the exceptions extends the ElasticsearchException interface, as in 7.x
  • we changed the response type of each endpoints using an Elasticsearch response class. This class wraps a 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! 👼
  • we changed the ConnectionPool in NodePool. The connection naming was ambigous since the objects are nodes (hosts)

Specific changes:

The following functions has been removed:

  • ClientBuilder::getEndpoint()
  • ClientBuilder::getRegisteredNamespacesBuilders()
  • ClientBuilder::getRegisteredNamespacesBuilders()
  • ClientBuilder::defaultHandler()
  • ClientBuilder::multiHandler()
  • ClientBuilder::singleHandler()
  • ClientBuilder::setConnectionFactory()
  • ClientBuilder::setConnectionPool(), you can use ClientBuilder::setNodePool instead
  • ClientBuilder::setEndpoint()
  • ClientBuilder::registerNamespace()
  • ClientBuilder::setTransport(), you can specify an HTTP PSR-18 client using ClientBuilder::setHttpClient()
  • ClientBuilder::setHandler()
  • ClientBuilder::setTracer(), you can only set a Logger using ClientBuilder::setLogger()
  • ClientBuilder::setSerializer()
  • ClientBuilder::setConnectionParams(), you can use ClientBuilder::setHttpClientOptions() instead
  • ClientBuilder::setSelector(), you can set a Selector using the setNodePool, 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 using Client::setAsync(true)
  • $params['client']['ignore'], you can disable the Exception using Client::setResponseException(false)

7.17

  • We changed the signature of Elasticsearch\Common\EmptyLogger::log adding the void return type. This change has been needed to support psr/log v3.

7.4

  • Using a deprecated parameter is notified triggering a E_USER_DEPRECATED error (e.g. using the type parameter will generate a Specifying types in urls has been deprecated deprecation message).
  • When delete with an empty id an Elasticsearch\Common\Exceptions\RuntimeException\Missing404Exception exception is thrown. Previously it was a Elasticsearch\Common\Exceptions\RuntimeException\InvalidArgumentException.

7.0

  • Requirement of PHP 7.1 instead of 7.0 that is not supported since 1 Jan 2019. See PHP supported version for more information.

  • Elasticsearch 7.0 deprecated APIs that accept types, introduced new typeless APIs, and removed support for the default mapping. Read this blog post for more information.

  • Added type hints and return type declarations where possible #897

6.8

  • Method taskList() renamed to list() in TasksNamespace

6.7

  • {type} part in indices.put_mapping API is not required anymore, see new specification here

6.0