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/uid
v7.x and bumpedtarantool/phpunit-extras
to 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
ClientException
interface, 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
ClientException
interface) can be retried - Tuned default parameters for exponential retries (changed
baseMs
from 100 to 10) - Limit the maximum retry interval to 1 min
- Added equal jitter to retry intervals
- Reverted ee6bc94 (see 8a8765b)
- QA:
- Added the
PhpUnitCompat
trait - 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::ERROR
toKeys::ERROR_24
(0x31), addedKeys::ERROR
(0x52) and error map keys
v0.7.1
- Fixed edge case error when
StreamConnection::open()
was returningnull
instead of theGreeting
object, 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 theGreeting
object - Added
unknown()
,equals()
andgetServerVersion()
to theGreeting
class, removedgetServerVersionId()
- Added optional second argument
$packer
toClient::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
Operations
class, e.g.Operations::bitOr()
→Operations::bitwiseOr()
- Added
Keys::SQL_INFO_ROW_COUNT
andKeys::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
Greeting
class into theConnection
namespace, addedGreeting::getServerVersionId()
- Renamed
AuthMiddleware
toAuthenticationMiddleware
and optimized scramble calculation - Added request/response pair matching based on the sync id
- Chose the default iterator type (
ALL
orEQ
) automatically based on the key value - Renamed
Criteria::[and|get]iteratorType
toCriteria::[and|get]iterator
- Added auto-reconnect functionality to
RetryMiddleware
, stopped retrying onUnexpectedResponse
- Cleaned up exceptions classes, removed
ClientException
,UnpackingFailed
andInvalidGreeting
- Removed
Schema\IndexIds
- Optimized request classes
- Optimized
PurePacker
- Optimized unpacking the IProto packet length
- Added
php 7.4.0RC5
to 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()