* Initial work on retries
* Added retry class and test coverage
* Added support for standalone and cluster
* Make TimeoutException instance of CommunicationException
* Added pipeline, trasnaction, replication support
* Fixed broken test
* Marked test as relay-incompatible
* Marked test as relay-incompatible
* Fixed analysis errors, added missing tests
* Codestyle fixes
* Fixed test
* Update README.md
* Update README.md
* Update README.md
* Updated README.md
* Refactor retry on read and write
* Added check for timeout value
* Updated README.md
* Fixed README.md
* Codestyle changes
* Added missing coverage
* Added missing test coverage
* Removed comments
* Added retry support for Relay connection (#1620)
* Added integration test case with mocked retry
* Changed client initialisation in tests
* Marked test as relay-incompatible
---------
Co-authored-by: Pavlo Yatsukhnenko <yatsukhnenko@users.noreply.github.com>
* Added support for transactions in OSS Cluster
* Updated test cases
* Updated version restriction
* Updated server version restriction
* Added test skip for Relay
* Added test case for Relay
* Set transaction slot to null in case of failed transaction
* Restrict usage of transaction commands outside of transaction context
* Added handling for Relay responses
* Reverted changes
* Removed unsupported command
* Added dummy arguments
* Codestyle fixes
* Added additional test coverage
* Added CHANGELOG and README entries
* Added missing PR reference
* Missing word
* Fixed README
* - init 8.1 tests
- adding `#[\ReturnTypeWillChange]`
- Fix deprecation message: strlen(): Passing null to parameter #1 ($string) of type string is deprecated
- null is not allowed
- cleanup
- default values should be same type
* Mirror `v1.1` fixes for these files
* add null as type too since we also accept null as default value
Signed-off-by: Zaher Ghaibeh <zaher@zaher.dev>
* revert back to assertNull
* Update CHANGELOG
* Update CHANGELOG.md
Co-authored-by: Till Krüss <tillkruss@users.noreply.github.com>
We have renamed most methods to drop the "command" suffix as it is quite
redundant. Due to this change and thanks to variadic methods introduced
with PHP 5.6 we took the opportunity to replace both "supportsCommand()"
and "supportsCommands()" with a single new method "supports()".
Added more stringent typehints for method arguments and typehints for
return values now that we do not need to support anything below PHP 7.2.
Also moved from using array() to [] in source code of class involved.
This change reduces some unnecessary complexity in the library, Redis
commands do not change much after all. Developers can still implement
their own commands factory, inject new commands or override existing
ones. The "profile" client options has been renamed to "commands" and
it accepts instances of Predis\Command\FactoryInterface.
The test suite checks at runtime the version of the running instance
of Redis for integration tests to adapt itself automatically.