Release 9.0.0
This is the new major release of elasticsearch-php compatible with Elasticsearch 9.0.0 🎉
- Compatibility with Elasticsearch 9.0: All changes and additions to Elasticsearch APIs for its 9.0 release are reflected in this release.
- Serverless client merged in: the elastic/elasticsearch-serverless client is being deprecated, and its functionality has been merged back into this client. This should have zero impact on the way the client works by default. If an endpoint is available in serverless, the PHP function will contains a
@group serverless
phpdoc attribute.
If you try to use an endpoint that is not available in serverless you will get a410
HTTP error with a message as follows:
"this endpoint exists but is not available when running in serverless mode".
The 9.0.0 client can recognize that it is communicating with a serverless instance if you are using a URL managed by Elastic (e.g.*.elastic.cloud
).
If you are using a proxy, the client will be able to recognize that the host is serverless from the first response. Alternatively, you can explicitly indicate that the host is serverless using theClient::setServerless(true)
function (false
by default). - New transport library with PSR-18 cURL client as default: we've removed the Guzzle dependency from the client. By default, the built-in cURL-based HTTP client will be used if no other PSR-18 compatible clients are detected. See release 9.0.0 of elastic-transport-php.
Breaking changes
- Use of PHP 8.1+: Starting from 9.0.0 the
elasticsearch-php
client requires PHP 8.1+.
Deprecations
- Utility::urlencode(): this function has been deprecated in favor of rawurlencode() of PHP (see #1278).