hyperf/CHANGELOG-3.1.md

18 KiB

v3.1.15 - TBD

Added

  • #6613 Added event of release connection for hyperf/pool.

Optimized

Deprecated

  • #6621 WebSocketHandeShakeException is deprecated, please use WebSocketHandShakeException instead.

v3.1.14 - 2024-03-21

Fixed

  • #6609 Fixed bug that the configurations will be cleared when the scan configuration does not exist.

Added

  • #6594 Added hyperf/carbon component.

Optimized

  • #6600 Optimized the worker process to no longer output warn information after exiting.
  • #6608 Optimized CacheAheadAspect which store cache in another coroutine instead of blocking current coroutine.

v3.1.13 - 2024-03-14

Added

  • #6576 Added Hyperf\Stringable\Str::apa() method.
  • #6577 Support setup command traits before running.
  • #6579 Added now() and today() helper functions.
  • #6590 Added --graceful to migrateCommand.

Fixed

  • #6586 Fixed bug that the command description will cause parse error when contains --.
  • #6593 Fixed the error when register multi AsCommand.

v3.1.12 - 2024-03-07

Fixed

  • #6569 Fixed bug that reading messages failed when the channel have been removed from channel group.
  • #6561 Fixed bug that the relation comments cannot be created by gen:model.
  • #6566 Fixed bug that the numeric keys will be reset when using $request->all().
  • #6567 Fixed bug that the CrontabRegisterListener don't check configuration crontab.enable.

v3.1.11 - 2024-03-01

Fixed

  • #6555 Fixed bug that invalidOperator cannot work well when using non-string operators.
  • #6563 Fixed cron dispatcher sleep accurate.

Added

  • #6550 Added default config of noop driver for hyperf/opentracing.
  • #6562 Added SqliteDriver for hyperf/cache.

Optimized

  • #6556 You can set an expression to model parameters, but it is not standardized.

v3.1.10 - 2024-02-23

Added

  • #6542 Added MemoryDriver for hyperf/cache.
  • #6533 Added database-sqlite component.

Optimized

  • #6539 Optimized retry helper function can accept array as first parameter.

v3.1.9 - 2024-02-18

Fixed

  • #6482 Fixed bug that the rule decimal cannot work well with size for validation.

Added

  • #6518 Added amqpMessage property to events for amqp.
  • #6526 Added Conditionable trait to Crontab.

Optimized

  • #6517 Fixed bug that the older versions of parsers cannot parse new messages for async-queue.
  • #6520 Refactor UdpSocketAspect to improve coroutine handling.

v3.1.8 - 2024-02-01

Fixed

  • #6509 Fixed bug that Schedule::call() cannot support array when using crontab.

Optimized

  • #6511 Optimized the serialization of Hyperf\AsyncQueue\JobMessage.
  • #6516 Fixed bug that message will be lost when unpack failed.

Added

  • #6504 Added HostReaderInterface for rpc-multiplex.

v3.1.7 - 2024-01-26

Fixed

  • #6491 Fixed bug that swagger validation collector cannot collect query parameters.
  • #6500 Fixed bug that inconsistent parsing response in Rpc-Multiplex client.

Added

Optimized

  • #6480 Optimize log for crontab task skipped.
  • #6489 Removed the low version conditions of php and swoole.

v3.1.6 - 2024-01-18

Added

  • #6449 Added method ReflectionManager::getAllClassesByFinder.
  • #6468 Added support for Crontab specified operating environments.
  • #6471 Added method Arr::remove.
  • #6474 Added Crontab::setOptions() and Crontab::getOptions().

Optimized

  • #6440 Optimized code of Hyperf\SocketIOServer\Parser\Decoder::decode().
  • #6472 Optimized code of DispatcherFactory which use require instead of require_once for loading routes.
  • #6473 Auto mkdir folder when using command gen:swagger-schema.
  • #6477 Optimized code about binding serverMutex and taskMutex for Crontab.
  • #6479 Updated the default mutex expiration time to 60 seconds.

v3.1.5 - 2024-01-04

Fixed

  • #6423 Fixed bug that the timezone of crontab task cannot work.
  • #6436 Fixed bug that the generator which be used to generate amqp consumer cannot work.

Added

  • #6431 Added UnsetContextInTaskWorkerListener which can be used to unset connection context when using non-coroutine task worker.

Optimized

  • #6435 #6437 Optimized model generator which can generate property comments with use.

v3.1.4 - 2023-12-29

Fixed

  • #6419 Fixed bug that prepareHandler cannot work sometimes for circuit-breaker.

Added

  • #6426 Added Annotation RewriteReturnType which used to rewrite the return type when generating models.

Optimized

  • #6415 Throw InvalidArgumentException instead of TypeError for decoding an empty string when using Base62::decode.

v3.1.3 - 2023-12-21

Fixed

  • #6389 Fixed bug that es version cannot be found when the index is null.
  • #6406 Fixed bug that Hyperf\Scout\Searchable don't import namespace of function config.

Added

  • #6398 Added timezone parameter to hyperf/crontab component.
  • #6402 Added template_suffix configuration to twig engine.

v3.1.2 - 2023-12-15

Fixed

  • #6372 Fixed bug that AOP not working when using variadic parameters.
  • #6374 Fixed bug that RateLimitAnnotationAspect::getWeightingAnnotation() cannot work when using config rate_limit.storage.
  • #6384 Fixed bug that scout cannot work when using elasticsearch(which version is less than 7) without index.

Added

  • #6357 Support symfony 7.x for some components such as command config devtool di and server.
  • #6373 Support ping method for grpc client.
  • #6379 Support to read custom attribute for validation when using swagger.
  • #6380 Support collect swagger validation rules and attribute for mediaType request body.

Optimized

  • #6376 Don't need to close swoole short name when don't use swoole or don't require hyperf/polyfill-coroutine component.

v3.1.1 - 2023-12-08

Fixed

  • #6347 Fixed bug that the view function may add redundant content-type to header.
  • #6352 Fixed bug that nacos config center cannot work when using grpc protocol.
  • #6350 Fixed bug that the recv channel cannot be found, because GrpcClient::runReceiveCoroutine will unset streamId before recv method.
  • #6361 Fixed bug that Hyperf\SocketIOServer\Emitter\Future cannot be resolved.
  • #6369 Fixed bug that the main process did not handle the abnormal exit of the fork process.

Added

  • #6342 Added Coroutine::fork() method and Coroutine::pid() method.
  • #6360 Added response content-type header for swagger server.
  • #6363 Added callable type support to the fallback property of CircuitBreaker Attribute.

v3.1.0 - 2023-12-01

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.
  • #6338 Added config processors for swagger.

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.