hyperf/CHANGELOG-2.1.md

18 KiB

v2.1.19 - TBD

Fixed

  • #3618 Fixed routes with same path but different methods will be merged when using describe:routes.

v2.1.18 - 2021-05-24

Fixed

  • #3598 Fixed bug that increment/decrement does not works as expect when used in transaction for model-cache.
  • #3607 Fixed bug that coroutine won't destruct when using onOpen in coroutine style websocket server.
  • #3610 Fixed bug that fromSub() and joinSub() don't work with table prefix.

v2.1.17 - 2021-05-17

Fixed

  • #3856 Fixed bug that coroutine won't destruct for keepalive request in swow server.

Added

  • #3329 The enable parameter of the @Crontab supports array, which you can dynamically control whether the task is executed or not.

v2.1.16 - 2021-04-26

Fixed

  • #3510 Fixed bug that consul couldn't force a node into the left state.
  • #3513 Fixed nats connection closed accidentally when socket timeout is smaller than max idle time.
  • #3520 Fixed @Inject does not works in nested trait.

Added

  • #3514 Added method Hyperf\HttpServer\Request::clearStoredParsedData().

Optimized

  • #3517 Optimized code for Hyperf\Di\Aop\PropertyHandlerTrait.

v2.1.15 - 2021-04-19

Added

  • #3484 Added methods withMax() withMin() withSum() and withAvg().

v2.1.14 - 2021-04-12

Fixed

  • #3465 Fixed bug that websocket does not works when exist more than one server in coroutine style.
  • #3467 Fixed bug that db connection couldn't be released to pool when using coroutine style websocket server.

Added

  • #3472 Added method Sender::getResponse() which you can used to get response from coroutine style server.

v2.1.13 - 2021-04-06

Fixed

  • #3432 Fixed bug that ttl does not works on other workers for socketio-server.
  • #3434 Fixed bug that the type of rpc result does not support types which allows null.
  • #3447 Fixed default value of column does not works in model-cache when has table prefix.
  • #3450 Fixed bug that @Crontab does not works when used in methods.

Optimized

  • #3453 Optimized code for releasing instance in Hyperf\Utils\Channel\Caller.
  • #3455 Optimized phar:build, which can support symlink package.

v2.1.12 - 2021-03-29

Fixed

  • #3423 Fixed crontab does not works when worker_num isn't integer for task worker strategy.
  • #3426 Fixed bug that middleware will be handled twice when used in optional route.

Optimized

  • #3422 Optimized code for co-phpunit.

v2.1.11 - 2021-03-22

Added

  • #3376 Support $connection and $attempts for Hyperf\DbConnection\Annotation\Transactional.
  • #3403 Added method Hyperf\Testing\Client::sendRequest() that you can use your own server request.

Fixed

  • #3380 Fixed bug that super globals does not work when request don't persist to context.
  • #3394 Fixed bug that the injected property will be replaced by injected property defined in trait.
  • #3395 Fixed bug that the private property which injected by parent class does not exists in class.
  • #3398 Fixed UploadedFile::isValid() does not works in phpunit.

v2.1.10 - 2021-03-15

Fixed

  • #3348 Fixed bug that Arr::forget failed when the integer key does not exists.
  • #3351 Fixed bug that FormRequest could't get the changed data from Context.
  • #3356 Fixed bug that could't get the valid uri when using Hyperf\Testing\Client.
  • #3363 Fixed bug that constants which defined in bin/hyperf.php does not works for server:start.
  • #3365 Fixed bug that pid_file will be created accidently when you don't configure pid_file in coroutine style server.

Optimized

  • #3364 Optimized phar:build that you can run phar without php, such as ./composer.phar instead of php composer.phar.
  • #3367 Optimized code for guessing the return type for custom caster when using gen:model.

v2.1.9 - 2021-03-08

Fixed

  • #3326 Fixed bug that unpack custom data failed when using JsonEofPacker.
  • #3330 Fixed data query error caused by unexpected change of $constraints by other coroutine.

Added

  • #3325 Added enable to control the crontab task which to register or not.

Optimized

  • #3338 Optimized code for testing which mock request in an alone coroutine.

v2.1.8 - 2021-03-01

Fixed

  • #3301 Fixed bug that the value of ttl will be converted to 0 when you don't set it for hyperf/cache.

Added

  • #3310 Added Blueprint::comment() which you can set comment of table for migration.
  • #3311 Added RouteCollector::getRouteParser which you can get RouteParser from RouteCollector.
  • #3316 Allow custom driver which you can used to register your own driver for hyperf/db.

Optimized

  • #3308 Send response directly when the handler does not exists.
  • #3319 Optimized code that get connection from pool.

Incubator

v2.1.7 - 2021-02-22

Fixed

  • #3272 Fixed bug that rename column name failed when using doctrine/dbal.

Added

  • #3261 Added method Pipeline::handleCarry() which to handle the returning value.
  • #3267 Added Hyperf\Utils\Reflection\ClassInvoker which you can used to execute non public methods or get non public properties.
  • #3268 Added support for kafka consumers to subscribe to multiple topics.
  • #3193 #3296 Added option -M which you can mount external files or dirs to a virtual location within the phar archive for phar:build.

Changed

  • #3258 Set different client ids based on different kafka consumers.
  • #3282 Renamed stoped to stopped for hyperf/signal.

v2.1.6 - 2021-02-08

Fixed

  • #3233 Fixed connection exhausted, when connect amqp server failed.
  • #3245 Fixed autoCommit does not works when you set false for hyperf/kafka.
  • #3255 Fixed bug that defer cannot be triggered in nsq consumer.

Optimized

  • #3249 Optimized hyperf/kafka which won't make a new producer to requeue message.

Removed

  • #3235 Removed rebalance check, because longlang/phpkafka checked.

v2.1.5 - 2021-02-01

Fixed

  • #3204 Fixed unexpected behavior for middlewares when using rpc-server.
  • #3209 Fixed bug that connection was not be released to pool when the amqp consumer broken in coroutine style server.
  • #3222 Fixed memory leak for join queries in hyperf/database.
  • #3228 Fixed bug that server crash when tracer flush failed in defer.
  • #3230 Fixed orderBy does not works for hyperf/scout.

Added

  • #3211 Added optional configuration url for nacos which used to request nacos server.
  • #3214 Added Caller which help you to use instance in coroutine security mode.
  • #3224 Added Hyperf\Utils\CodeGen\Package::getPrettyVersion().

Changed

  • #3218 Set qos of amqp by default.
  • #3224 Upgrade jean85/pretty-package-versions to ^1.2|^2.0, which support composer 2.x.

Optimized

  • #3226 Run pagination count as subquery for group by and havings.

v2.1.4 - 2021-01-25

Fixed

  • #3165 Fixed Hyperf\Database\Schema\MySqlBuilder::getColumnListing does not works in MySQL 8.0.
  • #3174 Fixed bug that the where bindings will be replaced by not rigorous code.
  • #3179 Fixed json-rpc client failed to receive data when the target server restart.
  • #3189 Fixed kafka producer unusable in cluster setup.
  • #3191 Fixed rpc-client with pool transporter recv failed once when the server restart in the next request.

Added

  • #3170 Added FindNewerDriver which is friendly with mac, linux and docker for watcher.
  • #3195 Added retry_count for JsonRpcPoolTransporter, the default retry count is 2.

Optimized

  • #3169 Optimized code for set_error_handler of ErrorExceptionHandler, which expects callable(int, string, string, int, array): bool.
  • #3191 Optimized code for hyperf/json-rpc, try to reconnect the server when connection closed.

Changed

  • #3174 Assert the binding values for database by default.

Incubator

  • DAG Directed Acyclic Graph.
  • RPN Reverse Polish Notation.

v2.1.3 - 2021-01-18

Fixed

  • #3070 Fixed tracer does not works in hyperf v2.1.
  • #3106 Fixed bug that call to a member function getArrayCopy() on null when the parent coroutine context destroyed.
  • #3108 Fixed routes will be replaced by another group when using describe:routes command.
  • #3118 Fixed bug that the config key of migrations is not correct.
  • #3126 Fixed bug that swoole v4.6 SWOOLE_HOOK_SOCKETS conflicts with jaeger tracing.
  • #3137 Fixed type hint error, when don't set true for PDO::ATTR_PERSISTENT.
  • #3141 Fixed doctrine/dbal does not works when using migration.

Added

  • #3059 The merged attributes in the view component support attributes other than 'class'.
  • #3123 Added method ComponentAttributeBag::has() for view-engine.

v2.1.2 - 2021-01-11

Fixed

  • #3050 Fixed extra data saved twice when use save() after increment() with extra.
  • #3082 Fixed connection has already been bound to another coroutine when used in defer for hyperf/db.
  • #3084 Fixed getRealPath does not works in phar.
  • #3087 Fixed memory leak when using pipeline sometimes.
  • #3095 Fixed unexpected behavior for ElasticsearchEngine::getTotalCount() in hyperf/scout.

Added

  • #2847 Added hyperf/kafka component.
  • #3066 Added method ConnectionInterface::run(Closure $closure) for hyperf/db.

Optimized

  • #3046 Optimized phar:build for rewriting scan_cacheable.

Changed

  • #3077 Reduced league/flysystem to ^1.0.

v2.1.1 - 2021-01-04

Fixed

  • #3045 Fixed type hint error, when don't set true for PDO::ATTR_PERSISTENT.
  • #3047 Fixed bug that renew sid in all namespaces failed.
  • #3062 Fixed bug that parameters don't parsed correctly in grpc server.

Added

  • #3052 Support collecting metrics while running command.
  • #3054 Support Engine::close protocol and improve error handling for socketio-server.

v2.1.0 - 2020-12-28

Dependencies Upgrade

  • Upgraded php to >=7.3;
  • Upgraded phpunit/phpunit to ^9.0;
  • Upgraded guzzlehttp/guzzle to ^6.0|^7.0;
  • Upgraded vlucas/phpdotenv to ^5.0;
  • Upgraded endclothing/prometheus_client_php to ^1.0;
  • Upgraded twig/twig to ^3.0;
  • Upgraded jcchavezs/zipkin-opentracing to ^0.2.0;
  • Upgraded doctrine/dbal to ^3.0;
  • Upgraded league/flysystem to ^1.0|^2.0;

Removed

  • Removed deprecated property $name from Hyperf\Amqp\Builder.
  • Removed deprecated method consume from Hyperf\Amqp\Message\ConsumerMessageInterface.
  • Removed deprecated property $running from Hyperf\AsyncQueue\Driver\Driver.
  • Removed deprecated method parseParameters from Hyperf\HttpServer\CoreMiddleware.
  • Removed deprecated const ON_WORKER_START and ON_WORKER_EXIT from Hyperf\Utils\Coordinator\Constants.
  • Removed deprecated method get from Hyperf\Utils\Coordinator.
  • Removed config rate-limit.php, please use rate_limit.php instead.
  • Removed useless class Hyperf\Resource\Response\ResponseEmitter.
  • Removed component hyperf/paginator from database's dependencies.
  • Removed method stats from Hyperf\Utils\Coroutine\Concurrent.

Changed

  • Hyperf\Utils\Coroutine::parentId which returns the parent coroutine ID

    • Returns 0 when running in the top level coroutine.
    • Throws RunningInNonCoroutineException when running in non-coroutine context
    • Throws CoroutineDestroyedException when the coroutine has been destroyed
  • Hyperf\Guzzle\CoroutineHandler

    • Deleted method execute
    • Method initHeaders will return $headers, instead of assigning "$headers" directly to the client.
    • Deleted method checkStatusCode
  • #2720 Don't set data_type for PDOStatement::bindValue.

  • #2871 Use (string) $body instead of $body->getContents() for getting contents from StreamInterface, because method getContents() only returns the remaining contents in a string.

  • #2909 Allow setting repeated middlewares.

  • #2935 Changed the string format for default exception formatter.

  • #2979 Don't format decimal to float for command gen:model by default.

Deprecated

  • Hyperf\AsyncQueue\Signal\DriverStopHandler will be deprecated in v2.2, please use Hyperf\Process\Handler\ProcessStopHandler instead.
  • Hyperf\Server\SwooleEvent will be deprecated in v3.0, please use Hyperf\Server\Event instead.

Added

  • #2659 #2663 Support HttpServer for Swow.
  • #2671 Added Hyperf\AsyncQueue\Listener\QueueHandleListener which can record running logs for async-queue.
  • #2923 Added Hyperf\Utils\Waiter which can wait coroutine to end.
  • #3001 Added method Hyperf\Database\Model\Collection::columns().
  • #3002 Added params $depth and $flags for Json::decode and Json::encode.

Fixed

  • #2741 Fixed bug that process does not works in swow server.

Optimized

  • #3009 Optimized code for prometheus which support https not only http.