hyperf/CHANGELOG-3.1.md
Albert Chen 3bca85b652
Support to reload .env when using hyperf/watcher. (#6936)
Co-authored-by: 李铭昕 <715557344@qq.com>
2024-07-08 11:29:54 +08:00

31 KiB

v3.1.31 - TBD

Added

  • #6936 Support to reload .env when using hyperf/watcher.

v3.1.30 - 2024-07-05

Fixed

  • #6925 Fixed bug that sortByMany don't reset indexes for Collection. But it will be return the same result like sortBy in v3.2.

v3.1.29 - 2024-07-04

Fixed

  • #6925 Fixed bug that sortByMany cannot support options like sortBy.

Added

  • #6896 Added SftpAdapter for hyperf/filesystem.
  • #6917 Added Str::chopStart and Str::chopEnd.

v3.1.28 - 2024-06-27

Fixed

  • #6900 Fixed bug that LengthAwarePaginator::addQuery() cannot support array $values.
  • #6909 Fixed bug that Aop doesn't work on Trait.

Optimized

  • #6903 Optimized code for config-nacos.

Added

  • #6885 Added validation rule prohibiti.
  • #6891 Support cache.*.options.pool to select redis instance for hyperf/cache.
  • #6895 Support to collect enum annotations.

v3.1.27 - 2024-06-20

Added

  • #6864 Added methods getViews and hasView into Hyperf\Database\Schema\Schema.
  • #6866 Added method Hyperf\Database\Concerns\BuildsQueries::lazy.
  • #6869 Added methods before and after into Collection.
  • #6876 Added method Hyperf\Database\Concerns\Builder::eachById.
  • #6878 Added methods whereMorphRelation and orWhereMorphRelation into Hyperf\Database\Model\Concerns\QueriesRelationships.
  • #6883 Added methods getIndexes hasIndex and getIndexListing into Hyperf\Database\Schema\Builder.
  • #6884 Added method Hyperf\Database\Model\Model::updateOrFail.
  • #6897 #6899 Added events BeforeLongLangConsumerCreated and AfterConsumerConfigCreated into Hyperf\Kafka\ConsumerManager.

Optimized

  • #6829 Optimized the format of command error logs.
  • #6868 Support type Closure|Expression|ModelBuilder|static|string of $column for QueryBuilder::orderBy().
  • #6870 Updated default path for factories in Model Factory construct method.
  • #6874 Using Scanner instead of hard code for hyperf/watcher component.

v3.1.26 - 2024-06-13

Fixed

  • #6848 Fixed bug that LazyCollection::splitIn() cannot work caused by type hint.

Added

  • #6845 Added method Hyperf\Database\Schema::getTables().
  • #6846 Added methods chunkById and chunkByIdDesc into Hyperf\Database\Concerns\BuildsQueries.
  • #6851 Added methods orDoesntHaveMorph and orHasMorph into Hyperf\Database\Model\Concerns.
  • #6858 Added methods makeHiddenIf and makeVisibleIf into Hyperf\Database\Model\Concerns\HidesAttributes.

Optimized

  • #6855 Optimized BuildsQueries to use Conditionable instead of when and unless.
  • #6856 Optimized Hyperf\Scout\Builder to use Conditionable instead of when and unless.
  • #6860 Use Hyperf\Collection\Enumerable instead of Hyperf\ViewEngine\Contract\Enumerable.

v3.1.25.1 - 2024-06-07

Added

  • #6837 Added method Model\Concerns\QueriesRelationships::withWhereHas().
  • #6844 Added methods whereRelation and orWhereRelation into Hyperf\Database\Model\Concerns\QueriesRelationships.

Optimized

  • #6843 #6847 Updated return type hints in Collection and LazyCollection.

v3.1.25 - 2024-06-06

Added

  • #6809 Added cursor paginator for hyperf/database.
  • #6811 Added list rule for hyperf/validation.
  • #6814 Added method Model::query()->touch() which used to update timestamps.
  • #6815 Added method Hyperf\Database\Model\Builder::qualifyColumns().
  • #6816 Added methods Hyperf\Database\Model\Builder::load*.
  • #6820 Added method Hyperf\Database\Model\Builder::valueOrFail().
  • #6821 Added method Hyperf\Database\Concerns\BuildsQueries::chunkMap().
  • #6822 Added methods lazyById and lazyByIdDesc for lazy queries.
  • #6825 Added methods createDatabase and dropDatabaseIfExists for Hyperf\Database\Schmea.

Fixed

  • #6813 Fixed bug that cannot read the messages from non-lower keys for Hyperf\Constants\Annotation\Message.
  • #6818 Fixed bug that updateOrInsert cannot work when the input is empty.
  • #6828 Fixed bug that AOP cannot work on __construct.
  • #6836 Fixed bug that SetCookie::fromString cannot not work by invalid types.

v3.1.24 - 2024-05-30

Fixed

  • #6796 #6798 Fixed bug that the return type of Collection::mapInto() is invalid sometimes.

Added

  • #6792 Support IncrementEach and DecrementEach for Hyperf\Database\Query\Builder.
  • #6793 Added the request body and response body to the tracer.
  • #6795 Added config rate_limit.storage.options.expired_time for rate-limit.

Optimized

  • #6778 Support array for Hyperf\Amqp\Annotation\Consumer::routingKey.
  • #6799 Support numbers and fromBase64 methods for \Hyperf\Stringable\Str.
  • #6803 Cancel AsCommand and ClosureCommand return values.

v3.1.23 - 2024-05-23

Added

  • #6757 Added Hyperf\Collection\LazyCollection.
  • #6763 Added Premature end of data into DetectsLostConnections.
  • #6767 Support whereAll/orWhereAll whereAny/orWhereAny for Hyperf\Database\Query\Builder.
  • #6774 Support Lateral Join for Hyperf\Database\Query\Builder.
  • #6781 Added some methods to Hyperf\Collection\Arr.
  • #6782 Added whereJsonOverlaps,orWhereJsonOverlaps and whereJsonDoesntOverlap to Hyperf\Database\Query\Builder.
  • #6783 Support insertOrIgnoreUsing for Hyperf\Database\Query\Builder.
  • #6784 Added getOrPut and getOrSet into Hyperf\Collection\Collection.

Optimized

  • #6777 Optimized StdoutLogger to improve log message handling.
  • #6778 Optimized Collection using EnumeratesValues.

v3.1.22 - 2024-05-16

Fixed

  • #6755 Fixed bug that exception normalizer cannot support symfony 7.

Added

  • #6734 Auto complete options for as command and closure command.
  • #6746 Added explain() for Hyperf\Database\Query\Builder.
  • #6749 Added some rules for hyperf/validation.
  • #6752 Added path and paths methods to Hyperf\Database\Seeders\Seed.

v3.1.21 - 2024-05-09

Added

  • #6738 Added unshift method to Hyperf\Collection\Collection.
  • #6740 Support useIndex forceIndex and ignoreIndex for Hyperf\Database\Query\Builder.

Optimized

  • #6716 #6717 Optimized exchange declaration for amqp consumer messages.
  • #6721 Optimized the implementation of When Method.
  • #6731 Updated InteractsWithModelFactory to handle missing dependencies.

Fixed

  • #6728 Fixed bug that hyperf/watch cannot work when using hyperf/constants enum mode.

v3.1.20 - 2024-04-26

Added

  • #6709 Added default onClose method for rpc Server.
  • #6712 Add new methods in Hyperf\Collection\Collection.

Optimized

  • #6700 Optimized the implementation of Pluralizer.

v3.1.19 - 2024-04-18

Fixed

  • #6689 Fixed bug that socket-io cannot parse data with ? but without query.
  • #6697 Fixed bug that withoutBody cannot not work when using Swow.

Added

  • #6680 Added Hyperf\Coordinator helper functions.
  • #6681 Added option type for gen:constant which you can be used to generate files with const or enum.

Optimized

  • #6686 Optimized FswatchDriver which don't restart server by empty reading.
  • #6698 Upgrade hyperf/engine to v2.11.
  • #6696 Automatic declare exchange when produce message.

v3.1.18 - 2024-04-12

Added

  • #6674 Added getConfig for redisPool.

Fixed

  • #6664 Fixed bug that isset cannot check null in Hyperf\Collection\Collection.

Optimized

  • #6668 Added error handling when using callback in multiplexed RPC.

v3.1.17 - 2024-04-10

Added

  • #6652 Added Str trim methods.
  • #6658 HEAD requests, attempt fallback to GET in MiddlewareManager.
  • #6665 Added logger for Websocket.

Changed

  • #6661 Use PHP_BINARY instead of php as default php binary path for hyperf/watcher.

v3.1.16 - 2024-04-02

Added

  • #6632 Support to set headers for websocket-client.
  • #6648 Return result about websocket senderpush``disconnect.

Fixed

  • #6633 Fixed bug that crontab will be skipped sometimes.
  • #6635 Fixed AMQP ConsumerMessage::getQueue return type.

Optimized

  • #6640 Support PHP8 Attribute for hyperf/constants.

v3.1.15 - 2024-03-28

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.