hyperf/CHANGELOG-3.1.md

7.8 KiB

v3.1.0 - TBD

Dependencies Upgrade

  • Upgrade the php version to >=8.1
  • Upgrade the swoole version to >=5.0
  • Upgrade hyperf/engine to ^2.0
  • Upgrade phpunit/phpunit to ^10.0

Swow Supported

  • #5843 Support Swow for reactive-x.
  • #5844 Support Swow for socketio-server.

Added

  • Support Psr7Plus.
    • #5828 Support swow psr7-plus interface for http-message.
    • #5839 Support swow psr7-plus interface for all components.
  • Support pest.
  • Added hyperf/helper component.
  • Added hyperf/polyfill-coroutine component.
  • #5815 Added alias as mysql for pdo in hyperf/db.
  • #5849 Support for insert update and select using enums.
  • #5894 #5897 Added model-factory support for hyperf/testing.
  • #5898 Added toRawSql() to Query Builders.
  • #5906 Added getRawQueryLog() to Database Connection.
  • #5915 Added data_forget helper.
  • #5914 Added Str::isUrl() and use it from the validator.
  • #5918 Added Arr::isList() method.
  • #5925 #5926 Allow model attributes to be casted to/from an Enum.
  • #5930 #5934 Added AsCommand annotation and ClosureCommand support.
  • #5950 Added Job::setMaxAttempts method and dispatch helper function for hyperf/async-queue.
  • #5967 Added component hyperf/migration-generator which used to generate migrations from databases.
  • #5983 #5985 Added skipCacheResults to annotations of hyperf/cache.
  • #5994 Added events of crontab lifecycle.
  • #6039 Support semantic crontab rules.
  • #6082 Added hyperf/stdlib component.
  • #6085 Added an error count to the database connection to ensure that the connection can be reset when occur too many exceptions.
  • #6106 Support some validation rules.
  • #6124 Added Hyperf\AsyncQueue\Job::fail().
  • #6259 Support to use model builder as the column in Hyperf\Database\Query\Builder\addSelect.
  • #6301 Improve storage switcher for rate-limit.

Optimized

  • Move Prometheus driver dependency to suggest.
  • #5586 Support grpc streaming for nacos naming service.
  • #5866 Use StrCache instead of Str in special cases.
  • #5872 Avoid to execute the refresh callback more than once when calling refresh() multi times.
  • #5879 #5878 Improve Command.
  • #5901 Optimized code for identifer established by the rpc client that must contain a string,number or null if included.
  • #5905 Forget with collections.
  • #5917 Upgrade URL pattern for Str::isUrl().
  • #5920 add the \Stringable interface to classes that have __toString() method.
  • #5945 Don't sync config frequently when listen more than one namespace for apollo config center.
  • #5948 Optimized Hyperf\Coroutine\Locker.
  • #5960 Allowed set poolName in Annotation.
  • #5972 Collection::except() with null returns all.
  • #5973 Simplified the handlers definition of logger.
  • #6010 Throw exception when cast class is not existed.
  • #6030 Support buffer mechanism in standalone process of metric.
  • #6131 Throw invalid argument exception when the crontab task is null.
  • #6172 Optimized ProcessManager to make the running status more clear.
  • #6184 Set logger when using safe socket in coroutine style tcp server.
  • #6247 Optimized code that you can get request from BadRequestHttpException.

Removed

  • Remove unused codes in hyperf/utils.
  • Remove redundant setAccessible methods.
  • Remove deprecated codes.
  • #5813 Removed support for swoole 4.x
  • #5859 Removed string cache from Hyperf\Stringable\Str
  • #6040 Removed some deprecated methods from Hyperf\Di\Annotation\AbstractAnnotation.
  • #6043 Removed deprecated Hyperf\Coroutine\Traits\Container.
  • #6244 Removed deprecated component swoole-tracker.

Changed

  • Throw exceptions when the redis option key is invalid.
  • #5847 Changed the default redis key for metric.
  • #5943 Don't remove the node from load balancer of json rpc http transporter when the status code isn't 200.
  • #5961 Using enum instead of class for Hyperf\Amqp\Result and Hyperf\Amqp\Message\Type.
  • #6022 When using Base62::decode to decode the incorrect data, it should be thrown InvalidArgumentException instead of TypeError.
  • #6128 When using multi-level directories for hyperf/config, you can use config('a.c') to get the configurations from autoload/a/c.php.

Fixed

  • #5771 Fixed bug that the return type of Model::updateOrInsert isn't boolean.
  • #6033 Fixed bug that RequestContext and ResponseContext cannot get instance from another coroutines.
  • #6056 Fixed bug that Hyperf\HttpServer\Request::hasFile() don't support Swow.
  • #6260 Fixed bug that logger cannot work in LoadBalancerInterface::refresh().

Deprecated

  • Hyperf\DB\PgSQL\PgSQLConnection::str_replace_once will be deprecated, please use Hyperf\DB\PgSQL\PgSQLConnection::strReplaceOnce instead.
  • Hyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::str_replace_once will be deprecated, please use Hyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::strReplaceOnce instead.