Feature: Improve PHP 8.4+ support by avoiding implicitly nullable types. (#19 by @clue)
Update project structure, homepage and examples.
Add .gitattributes to exclude dev files from exports.
(#16, #20, #21 and #22 by @clue)
Update test suite to use GitHub actions for continuous integration (CI), run tests on all PHP versions up to PHP 8.3 and ensure 100% code coverage. (#15 by @SimonFrings and #17 and #18 by @clue)
Feature: Add dedicated and faster RequestParser that also support the old
inline request protocol.
Feature: Message serialization can now be handled directly by the Serializer again without having to construct the appropriate model first.
BC break: The Factory now has two distinct methods to create parsers:
createResponseParser() for a client-side librarycreateRequestParser() for a server-side library / testing frameworkBC break: Simplified parser API, now pushIncoming() returns an array of all
parsed message models.
BC break: The signature for getting a serialized message from a model was changed and now requires a Serializer passed:
ModelInterface::getMessageSerialized($serializer)
Re-organize the whole API into dedicated
Parser (protocol reader) andSerializer (protocol writer) sub-namespaces. (#4)Use of the factory has now been unified:
$factory = new Clue\Redis\Protocol\Factory();
$parser = $factory->createParser();
$serializer = $factory->createSerializer();
Add a dedicated Model for each type of reply. Among others, this now allows
you to distinguish a single line StatusReply from a binary-safe BulkReply. (#2)
Fix parsing binary values and do not trip over trailing/leading whitespace. (#4)
Improve parser and serializer performance by up to 20%. (#4)