algolia / algolia/algoliasearch-client-php

[bug]: BC Break starting v4.10.0 for batch operations in SearchClient

Open
#744 2 comments 0 reactions 1 assignee Claimed by @damcou View on GitHub
Dominant language
PHP
Stars
697
Forks
112
PR merge metrics
No merged PRs in 30d

Description

### Description

The following commit changed the method signature of multiple **SearchClient** methods, causing existing implementations to break when updating to algoliasearch-client-php v4.10.0 or higher:
https://github.com/algolia/algoliasearch-client-php/commit/50bc69c75c379f5fb626ac014b9a340d469987b5#diff-54160c7bd8737a7321b4384faa37eda8798b45865a44cab860fb736b08a60057R2945-R2962

Since the commit adds a new parameter in the middle of the established ones, existing code calling these methods with *requestOptions* (and possibly *waitForTasks*) will break as the arguments are now misaligned. Missing type checks furthermore causes this to surface as an obscure error (see log output). Only implementations that explicitly used named arguments aren't affected.

The method doc-block also erroneously hints the new *batchSize* parameter type to be an array.

Minor releases shouldn't contain BC-breaking changes for publicly supported methods. If a new parameter is added, it should be appended at the end as to not break existing method calls for dependents.

### Client

Search

### Version

4.10, 4.12

### Relevant log output

```shell
In SearchClient.php line 3112:

[Error]
Cannot use a scalar value as an array

Exception trace:
at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:3112
Algolia\AlgoliaSearch\Api\SearchClient->sendRequest() at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:355
Algolia\AlgoliaSearch\Api\SearchClient->batch() at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:3028
Algolia\AlgoliaSearch\Api\SearchClient->chunkedBatch() at /srv/sylius/vendor/algolia/algoliasearch-client-php/lib/Api/SearchClient.php:2961
Algolia\AlgoliaSearch\Api\SearchClient->saveObjects() at /srv/sylius/src/Client/AlgoliaIndexClientV4.php:27
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.