Releases: tarantool-php/client
Releases · tarantool-php/client
v0.10.1
- Enhanced error messages with more details for failed connections (see #89)
- Updated dependencies: allowed
symfony/uidv7.x and bumpedtarantool/phpunit-extrasto v0.2.0 - Made integration tests compatible with Tarantool v3.x
- Added Tarantool 3.0, 3.1 and PHP 8.2, 8.3 to the CI test matrix
v0.10.0
- Dropped PHP 7.1 support
- Dropped
PeclPacker - The rybakit/msgpack and symfony/uid dependencies are now mandatory and are installed with the main package
- The
MiddlewareHandler::create()method is replaced withMiddlewareHandler::prepend()andMiddlewareHandler::append() - Added microseconds timeout support
- Enhanced tests
- Added more examples
- Switched to GitHub actions
- Added reusable testing workflow which is now called from the Tarantool CI workflow
- Added Tarantool 2.7, 2.8, 2.10 and PHP 8.1 to the test matrix
v0.9.0
- Added PHP 8 support
- Added the ability to prepend middleware via
Client::withPrependedMiddleware()(see #69) - The signature of
MiddlewareHandler::create()changed to:- public static function create(Handler $handler, Middleware $middleware, Middleware ...$middlewares) : Handler + public static function create(Handler $handler, array $middleware, bool $prepend = false) : Handler
- Added the
ClientExceptioninterface, all client exception classes now implement this interface - Enhanced
RetryMiddleware:- Added protection against infinite retries (the maximum number of retries allowed is 10)
- Only сlient exceptions (implementing the
ClientExceptioninterface) can be retried - Tuned default parameters for exponential retries (changed
baseMsfrom 100 to 10) - Limit the maximum retry interval to 1 min
- Added equal jitter to retry intervals
- Reverted ee6bc94 (see 8a8765b)
- QA:
- Added the
PhpUnitCompattrait - Added
SpyMiddleware - Switched to travis-ci.com
- Added Scrutinizer configuration
- Added the
v0.8.1
- Updated
StreamConnection::close()to close persistent connections opened in a previous session to avoid potential issues with re-authentication - Added metadata keys (
Keys::METADATA_FIELD_*) to work with the extended SQL result sets (can be enabled withSET SESSION "sql_full_metadata" = true) - Removed PHPUnit dependency from example scripts
- Fixed some tests which were failing on MacOS
- Updated test matrix to test against Tarantool 2.5 and 2.6
v0.8.0
- Added UUID support (Tarantool 2.4+) (example)
- Added extended error support (Tarantool 2.4.1+), including new protocol format and MessagePack extension
- Added CustomErrorMiddleware, that allows to transparently convert Lua errors into PHP exceptions (Tarantool 2.4.1+) (example)
- Made MessagePack extension classes final
- Added
PurePacker::fromAvailableExtensions() - Renamed
Keys::ERRORtoKeys::ERROR_24(0x31), addedKeys::ERROR(0x52) and error map keys
v0.7.1
- Fixed edge case error when
StreamConnection::open()was returningnullinstead of theGreetingobject, applied other minor improvements onStreamConnection - Implemented ArrayAccess on
SqlQueryResult. Now you can access the elements of the resulting set using the array syntax, for example:$result = $client->executeQuery(...); var_dump($result[0], $result[1]);
- Enriched tests with tarantool/phpunit-extras
- Setup GitHub Sponsors funding
v0.7.0
- Added support for prepared statements (Tarantool 2.3.2+) (example)
- Added generic
Client::execute()method to execute dynamic SQL statements whose type (query or update) is unknown - Dropped nullable return type from
SqlUpdateResult::getAutoincrementIds(), now it always returns an array - Dropped nullable return type from
Connection::open(), now it always returns theGreetingobject - Added
unknown(),equals()andgetServerVersion()to theGreetingclass, removedgetServerVersionId() - Added optional second argument
$packertoClient::fromOptions()andClient::fromDsn() - Bumped rybakit/msgpack requirement to
^0.7, if ext-decimal extension is enabled, overflowed integers will now be automatically converted toDecimal\Decimal - Renamed bitwise methods in the
Operationsclass, e.g.Operations::bitOr()→Operations::bitwiseOr() - Added
Keys::SQL_INFO_ROW_COUNTandKeys::SQL_INFO_AUTO_INCREMENT_IDS - Added Psalm, a static analysis tool for PHP
- Added more tests and usage examples
v0.6.0
- Added support for persistent connections
- Added support for decimals (Tarantool 2.3+) (example)
- Allowed to use field names in update/upsert operations (Tarantool 2.3+) (example)
- Moved the
Greetingclass into theConnectionnamespace, addedGreeting::getServerVersionId() - Renamed
AuthMiddlewaretoAuthenticationMiddlewareand optimized scramble calculation - Added request/response pair matching based on the sync id
- Chose the default iterator type (
ALLorEQ) automatically based on the key value - Renamed
Criteria::[and|get]iteratorTypetoCriteria::[and|get]iterator - Added auto-reconnect functionality to
RetryMiddleware, stopped retrying onUnexpectedResponse - Cleaned up exceptions classes, removed
ClientException,UnpackingFailedandInvalidGreeting - Removed
Schema\IndexIds - Optimized request classes
- Optimized
PurePacker - Optimized unpacking the IProto packet length
- Added
php 7.4.0RC5to the test matrix
v0.5.2
v0.5.1
Added
Tarantool\Client\Schema\Criteria::iteratorType()Tarantool\Client\Schema\Criteria::andIteratorType()Tarantool\Client\SqlQueryResult::isEmpty()Tarantool\Client\SqlQueryResult::getFirst()Tarantool\Client\SqlQueryResult::getLast()Tarantool\Client\SqlQueryResult::count()