1[[release-notes]] 2== Release notes 3 4* <<rn-7-15-0>> 5* <<rn-7-14-0>> 6* <<rn-7-13-1>> 7* <<rn-7-13-0>> 8* <<rn-7-12-0>> 9* <<rn-7-11-0>> 10* <<rn-7-10-0>> 11* <<rn-7-9-1>> 12* <<rn-7-9-0>> 13* <<rn-7-8-0>> 14* <<rn-7-7-0>> 15* <<rn-7-6-1>> 16* <<rn-7-6-0>> 17* <<rn-7-5-1>> 18* <<rn-7-5-0>> 19* <<rn-7-4-1>> 20* <<rn-7-4-0>> 21* <<rn-7-3-0>> 22* <<rn-7-2-2>> 23* <<rn-7-2-1>> 24* <<rn-7-2-0>> 25* <<rn-7-1-1>> 26* <<rn-7-1-0>> 27* <<rn-7-0-2>> 28* <<rn-7-0-1>> 29* <<rn-7-0-0>> 30 31[discrete] 32[[rn-7-15-0]] 33=== 7.15.0 34 35* Updated endpoints for Elasticsearch 7.15.0 36 https://github.com/elastic/elasticsearch-php/commit/995f6d4bde7de76004e95d7a434b1d59da7a7e75[995f6d4] 37 38 39[discrete] 40[[rn-7-14-0]] 41=== 7.14.0 42 43* Usage of psr/log version 2 44 https://github.com/elastic/elasticsearch-php/pull/1154[#1154] 45* Update search iterators to send `scroll_id` inside the request body 46 https://github.com/elastic/elasticsearch-php/pull/1134[#1134] 47* Added the `ingest.geoip.downloader.enabled=false` setting for ES 48 https://github.com/elastic/elasticsearch-php/commit/586735109dc18f22bfdf3b73ab0621b37e857be1[5867351] 49* Removed phpcs for autogenerated files (endpoints) 50 https://github.com/elastic/elasticsearch-php/commit/651c57b2e6bf98a0fd48220949966e630e5a804a[651c57b] 51 52 53[discrete] 54[[rn-7-13-1]] 55=== 7.13.1 56 57* Added port in url for trace and logger messages 58 https://github.com/elastic/elasticsearch-php/pull/1126[#1126] 59 60 61[discrete] 62[[rn-7-13-0]] 63=== 7.13.0 64 65* (DOCS) Added the HTTP meta data section 66 https://github.com/elastic/elasticsearch-php/pull/1143[#1143] 67* Added support for API Compatibility Header 68 https://github.com/elastic/elasticsearch-php/pull/1142[#1142] 69* (DOCS) Added Helpers section to PHP book 70 https://github.com/elastic/elasticsearch-php/pull/1129[#1129] 71* Added the API description in phpdoc section for each endpoint 72 https://github.com/elastic/elasticsearch-php/commit/9e05c8108b638b60cc676b6a4f4be97c7df9eb64[9e05c81] 73* Usage of PHPUnit 9 only + migrated xml configurations 74 https://github.com/elastic/elasticsearch-php/commit/038b5dd043dc76b20b9f5f265ea914a38d33568d[038b5dd] 75 76 77[discrete] 78[[rn-7-12-0]] 79=== 7.12.0 80 81* Updated the endpoints for ES 7.12 + removed `cpliakas/git-wrapper` in favor of 82 `symplify/git-wrapper` 83 https://github.com/elastic/elasticsearch-php/commit/136d5b9717b3806c6b34ef8a5076bfe7cee8b46e[136d5b9] 84* Fixed warning header as array in YAML tests generator 85 https://github.com/elastic/elasticsearch-php/commit/0d81be131bfc7eff6ef82468e61c16077a892aab[0d81be1] 86* Refactored TEST_SUITE with free, platinum + removed old YamlRunnerTest 87 https://github.com/elastic/elasticsearch-php/commit/f69d96fc283580177002b4088c279c3d0c07befe[f69d96f] 88 89 90[discrete] 91[[rn-7-11-0]] 92=== 7.11.0 93 94* Added the `X-Elastic-Client-Meta` header which is used by Elastic Cloud and 95 can be disabled with `ClientBuilder::setElasticMetaHeader(false)` 96 https://github.com/elastic/elasticsearch-php/pull/1089[#1089] 97* Replaced `array_walk` with `array_map` in `Connection::getURI` for PHP 8 98 compatibility 99 https://github.com/elastic/elasticsearch-php/pull/1075[#1075] 100* Remove unnecessary `InvalidArgumentExceptions` 101 https://github.com/elastic/elasticsearch-php/pull/1069[#1069] 102* Introducing PHP 8 compatibility 103 https://github.com/elastic/elasticsearch-php/pull/1063[#1063] 104* Replace Sami by Doctum and fix `.gitignore` 105 https://github.com/elastic/elasticsearch-php/pull/1062[#1062] 106 107 108[discrete] 109[[rn-7-10-0]] 110=== 7.10.0 111 112* Updated endpoints and namespaces for {es} 7.10 113 https://github.com/elastic/elasticsearch-php/commit/3ceb7484a111aa20126168460c79f098c4fe0792[3ceb748] 114* Fixed ClientBuilder::fromConfig allowing multiple function parameters (for 115 example, `setApiKey`) 116 https://github.com/elastic/elasticsearch-php/pull/1076[#1076] 117* Refactored the YAML tests using generated PHPUnit code 118 [85fadc2](https://github.com/elastic/elasticsearch-php/commit/85fadc2bd4b2b309b19761a50ff13010d43a524d) 119 120 121[discrete] 122[[rn-7-9-1]] 123=== 7.9.1 124 125* Fixed using object instead of array in onFailure transport event 126 https://github.com/elastic/elasticsearch-php/pull/1066[#1066] 127* Fixed reset custom header after endpoint call 128 https://github.com/elastic/elasticsearch-php/pull/1065[#1065] 129* Show generic error messages when server returns no response 130 https://github.com/elastic/elasticsearch-php/pull/1056[#1056] 131 132 133[discrete] 134[[rn-7-9-0]] 135=== 7.9.0 136 137* Updated endpoints and namespaces for {es} 7.9 138 https://github.com/elastic/elasticsearch-php/commit/28bf0ed6df6bc95f83f369509431d97907bfdeb0[28bf0ed] 139* Moved `scroll_id` into `body` for search operations in the documentation 140 https://github.com/elastic/elasticsearch-php/pull/1052[#1052] 141* Fixed PHP 7.4 preloading feature for autoload.php 142 https://github.com/elastic/elasticsearch-php/pull/1051[#1051] 143* Improved message of JSON errors using `json_last_error_msg()` 144 https://github.com/elastic/elasticsearch-php/pull/1045[#1045] 145 146 147[discrete] 148[[rn-7-8-0]] 149=== 7.8.0 150 151* Updated endpoints and namespaces for {es} 7.8 152 https://github.com/elastic/elasticsearch-php/commit/f2a0828d5ee9d126ad63e2a1d43f70b4013845e2[f2a0828] 153* Improved documentation 154 https://github.com/elastic/elasticsearch-php/pull/1038[#1038], 155 https://github.com/elastic/elasticsearch-php/pull/1027[#1027], 156 https://github.com/elastic/elasticsearch-php/pull/1025[#1025] 157 158 159[discrete] 160[[rn-7-7-0]] 161=== 7.7.0 162 163* Removed setId() into endpoints, fixed `util/GenerateEndpoints.php` 164 https://github.com/elastic/elasticsearch-php/pull/1026[#1026] 165* Fixes JsonErrorException with code instead of message 166 https://github.com/elastic/elasticsearch-php/pull/1022[#1022] 167* Better exception message for Could not parse URI 168 https://github.com/elastic/elasticsearch-php/pull/1016[#1016] 169* Added JUnit log for PHPUnit 170 https://github.com/elastic/elasticsearch-php/commit/88b7e1ce80a5a52c1d64d00c55fef77097bbd8a9[88b7e1c] 171* Added the XPack endpoints 172 https://github.com/elastic/elasticsearch-php/commit/763d91a3d506075316b84a38b2bed7a098da5028[763d91a] 173 174 175 176[discrete] 177[[rn-7-6-1]] 178=== 7.6.1 179 180* Fixed issue with `guzzlehttp/ringphp` and `guzzle/streams` using forks 181 `ezimuel/ringphp` and `ezimuel/guzzlestreams` 182 https://github.com/elastic/elasticsearch-php/commit/92a6a4adda5eafd1823c7c9c386e2c7e5e75cd08[92a6a4a] 183 184 185[discrete] 186[[rn-7-6-0]] 187=== 7.6.0 188 189* Generated the new endpoints for {es} 7.6.0 190 https://github.com/elastic/elasticsearch-php/commit/be31f317af704f333b43bbcc7c01ddc7c91ec6f8[be31f31] 191 192 193[discrete] 194[[rn-7-5-1]] 195=== 7.5.1 196 197* Fixes port missing in log https://github.com/elastic/elasticsearch-php/issues/925[#925] 198 https://github.com/elastic/elasticsearch-php/commit/125594b40d167ef1509b3ee49a3f93426390c426[75e0888] 199* Added `ClientBuilder::includePortInHostHeader()` to add the `port` in the 200 `Host` header. This fixes https://github.com/elastic/elasticsearch-php/issues/993[#993]. 201 By default the `port` is not included in the `Host` header. 202 https://github.com/elastic/elasticsearch-php/pull/997[#997] 203* Replace abandoned packages: ringphp, streams and phpstan-shim 204 https://github.com/elastic/elasticsearch-php/pull/996[#996] 205* Fixed gzip compression when setting Cloud Id 206 https://github.com/elastic/elasticsearch-php/pull/986[#986] 207 208 209[discrete] 210[[rn-7-5-0]] 211=== 7.5.0 212 213* Fixed `Client::extractArgument` iterable casting to array; this allows passing 214 a `Traversable` body for some endpoints (for example, Bulk, Msearch, 215 MsearchTemplate) 216 https://github.com/elastic/elasticsearch-php/pull/983[#983] 217* Fixed the Response Exception if the `reason` field is null 218 https://github.com/elastic/elasticsearch-php/pull/980[#980] 219* Added support for PHP 7.4 220 https://github.com/elastic/elasticsearch-php/pull/976[#976] 221 222 223[discrete] 224[[rn-7-4-1]] 225=== 7.4.1 226 227* We added the suppress operator `@` for the deprecation messages 228 `@trigger_error()`. With this approach, we don't break existing application 229 that convert PHP errors in Exception (for example, using Laravel with issue 230 https://github.com/babenkoivan/scout-elasticsearch-driver/issues/297[297]) 231 Using the `@` operator is still possible to intercept the deprecation message 232 using a custom error handler. 233 https://github.com/elastic/elasticsearch-php/pull/973[#973] 234* Add missing leading slash in the URL of put mapping endpoint 235 https://github.com/elastic/elasticsearch-php/pull/970[#970] 236* Fix pre 7.2 endpoint class name with aliases + reapply fix #947. This PR 237 solved the unexpected BC break introduce in 7.4.0 with the code 238 generation tool 239 https://github.com/elastic/elasticsearch-php/pull/968[#968] 240 241 242[discrete] 243[[rn-7-4-0]] 244=== 7.4.0 245 246* Added the code generation for endpoints and namespaces based on the 247 https://github.com/elastic/elasticsearch/tree/v7.4.2/rest-api-spec/src/main/resources/rest-api-spec/api[REST API specification] 248 of {es}. This tool is available in `util/GenerateEndpoints.php`. 249 https://github.com/elastic/elasticsearch-php/pull/966[#966] 250* Fixed the asciidoc 251 https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/ElasticsearchPHP_Endpoints.html[endpoints documentation] 252 based on the code generation using https://github.com/FriendsOfPHP/Sami[Sami] 253 project https://github.com/elastic/elasticsearch-php/pull/966[#966] 254* All the `experimental` and `beta` APIs are now signed with a `@note` tag in 255 the phpdoc section (for example, 256 https://github.com/elastic/elasticsearch-php/blob/master/src/Elasticsearch/Client.php[$client->rankEval()]). 257 For more information read the 258 https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/experimental_and_beta_apis.html[experimental and beta APIs] 259 section in the documentation. 260 https://github.com/elastic/elasticsearch-php/pull/966[#966] 261* Removed `AlreadyExpiredException` since it has been removed 262 from {es} with https://github.com/elastic/elasticsearch/pull/24857[#24857] 263 https://github.com/elastic/elasticsearch-php/pull/954[#954] 264 265 266[discrete] 267[[rn-7-3-0]] 268=== 7.3.0 269 270* Added support for simplified access to the `X-Opaque-Id` header 271 https://github.com/elastic/elasticsearch-php/pull/952[#952] 272* Added the HTTP port in the log messages 273 https://github.com/elastic/elasticsearch-php/pull/950[#950] 274* Fixed hostname with underscore (ClientBuilder::prependMissingScheme) 275 https://github.com/elastic/elasticsearch-php/pull/949[#949] 276* Removed unused Monolog in ClientBuilder 277 https://github.com/elastic/elasticsearch-php/pull/948[#948] 278 279 280[discrete] 281[[rn-7-2-2]] 282=== 7.2.2 283 284* Reintroduced the optional parameter in 285 `Elasticsearch\Namespaces\IndicesNamespace::getAliases()`. 286 This fixes the BC break introduced in 7.2.0 and 7.2.1. 287 https://github.com/elastic/elasticsearch-php/pull/947[#947] 288 289 290[discrete] 291[[rn-7-2-1]] 292=== 7.2.1 293 294* Reintroduced `Elasticsearch\Namespaces\IndicesNamespace::getAliases()` as proxy 295 to `IndicesNamespace::getAlias()` to prevent BC breaks. The `getAliases()` is 296 marked as deprecated and it will be removed from `elasticsearch-php 8.0` 297 https://github.com/elastic/elasticsearch-php/pull/943[#943] 298 299[discrete] 300==== Docs 301 302* Fixed missing put mapping code snippet in code examples 303 https://github.com/elastic/elasticsearch-php/pull/938[#938] 304 305 306[discrete] 307[[rn-7-2-0]] 308=== 7.2.0 309 310* Updated the API endpoints for working with {es} 7.2.0: 311 * added `wait_for_active_shards` parameter to `indices.close` API; 312 * added `expand_wildcards` parameter to `cluster.health` API; 313 * added include_unloaded_segments`, `expand_wildcards`, `forbid_closed_indices` 314 parameters to `indices.stats` API. 315 https://github.com/elastic/elasticsearch-php/pull/933/commits/27d721ba44b8c199388650c5a1c8bd69757229aa[27d721b] 316* Updated the phpdoc parameters for all the API endpoints 317 https://github.com/elastic/elasticsearch-php/pull/933/commits/27d721ba44b8c199388650c5a1c8bd69757229aa[27d721b] 318* Improved the Travis CI speed using cache feature with composer 319 https://github.com/elastic/elasticsearch-php/pull/929[#929] 320* Fixed `php_uname()` usage checking if it is disabled 321 https://github.com/elastic/elasticsearch-php/pull/927[#927] 322* Added support of Elastic Cloud ID and API key authentication 323 https://github.com/elastic/elasticsearch-php/pull/923[#923] 324 325 326[discrete] 327[[rn-7-1-1]] 328=== 7.1.1 329 330* Fixed `ClientBuilder::setSSLVerification()` to accept string or boolean 331 https://github.com/elastic/elasticsearch-php/pull/917[#917] 332* Fix type hinting for `setBody` in 333 `Elasticsearch\Endpoints\Ingest\Pipeline\Put` 334 https://github.com/elastic/elasticsearch-php/pull/913[#913] 335 336 337[discrete] 338[[rn-7-1-0]] 339=== 7.1.0 340 341* Added warning log for {es} response containing the `Warning` header 342 https://github.com/elastic/elasticsearch-php/pull/911[#911] 343* Fixed #838 hosting company is blocking ports because of `YamlRunnerTest.php` 344 https://github.com/elastic/elasticsearch-php/pull/844[#844] 345* Specialized inheritance of `NoNodesAvailableException` to extend 346 `ServerErrorResponseException` instead of the generic `\Exception` 347 https://github.com/elastic/elasticsearch-php/pull/607[#607] 348* Fixed scroll TTL is extracted but not set as a body param 349 https://github.com/elastic/elasticsearch-php/pull/907[#907] 350 351[discrete] 352==== Testing 353 354* Improved the speed of integration tests removing snapshots delete from 355 `YamlRunnerTest::clean` 356 https://github.com/elastic/elasticsearch-php/pull/911[#911] 357* Reduced the number of skipping YAML integration tests from 20 to 6 358 https://github.com/elastic/elasticsearch-php/pull/911[#911] 359 360[discrete] 361==== Docs 362 363* Documentation updated for {es} 7 364 https://github.com/elastic/elasticsearch-php/pull/904[#904] 365 366 367[discrete] 368[[rn-7-0-2]] 369=== 7.0.2 370 371* Fixed incorrect return type hint when using async requests/futures 372 https://github.com/elastic/elasticsearch-php/pull/905[#905] 373 374 375[discrete] 376[[rn-7-0-1]] 377=== 7.0.1 378 379* Fixed SniffingConnectionPool removing the return type of Connection::sniff() 380 https://github.com/elastic/elasticsearch-php/pull/899[#899] 381 382 383[discrete] 384[[rn-7-0-0]] 385=== 7.0.0 386 387* Requirement of PHP 7.1 instead of 7.0 that is not supported since 1 Jan 2019. 388 https://github.com/elastic/elasticsearch-php/pull/897[#897] 389* Code refactoring using type hints and return type declarations where possible 390 https://github.com/elastic/elasticsearch-php/pull/897[#897] 391* Update vendor libraries (PHPUnit 7.5, Symfony YAML 4.3, and so on) 392 https://github.com/elastic/elasticsearch-php/pull/897[#897] 393* Updated all the API endpoints using the 394 https://github.com/elastic/elasticsearch/tree/v7.0.0/rest-api-spec/src/main/resources/rest-api-spec/api[latest 7.0.0 specs] 395 of {es} https://github.com/elastic/elasticsearch-php/pull/897[#897] 396* Added the `User-Agent` in each HTTP request 397 https://github.com/elastic/elasticsearch-php/pull/898[#898] 398* Simplified the logging methods 399 `logRequestFail($request, $response, $exception)` and 400 `logRequestSuccess($request, $response)` in 401 `Elasticsearch\Connections\Connection` 402 https://github.com/elastic/elasticsearch-php/pull/876[#876] 403* Fix `json_encode` for unicode(emoji) characters 404 https://github.com/elastic/elasticsearch-php/pull/856[#856] 405* Fix HTTP port specification using CURLOPT_PORT, not anymore in the host 406 https://github.com/elastic/elasticsearch-php/pull/782[#782] 407