- #6949 Fixed bug that restart failed when don't have
.env.
- #6946 Removed Swoole Atomic dependency and useless restart counter in watcher.
- #6936 Support to reload
.envwhen usinghyperf/watcher.
- #6925 Fixed bug that
sortByManydon't reset indexes forCollection. But it will be return the same result likesortByinv3.2.
- #6925 Fixed bug that
sortByManycannot support options likesortBy.
- #6900 Fixed bug that
LengthAwarePaginator::addQuery()cannot support array$values. - #6909 Fixed bug that
Aopdoesn't work onTrait.
- #6903 Optimized code for
config-nacos.
- #6885 Added validation rule
prohibiti. - #6891 Support
cache.*.options.poolto select redis instance forhyperf/cache. - #6895 Support to collect enum annotations.
- #6864 Added methods
getViewsandhasViewintoHyperf\Database\Schema\Schema. - #6866 Added method
Hyperf\Database\Concerns\BuildsQueries::lazy. - #6869 Added methods
beforeandafterintoCollection. - #6876 Added method
Hyperf\Database\Concerns\Builder::eachById. - #6878 Added methods
whereMorphRelationandorWhereMorphRelationintoHyperf\Database\Model\Concerns\QueriesRelationships. - #6883 Added methods
getIndexeshasIndexandgetIndexListingintoHyperf\Database\Schema\Builder. - #6884 Added method
Hyperf\Database\Model\Model::updateOrFail. - #6897 #6899 Added events
BeforeLongLangConsumerCreatedandAfterConsumerConfigCreatedintoHyperf\Kafka\ConsumerManager.
- #6829 Optimized the format of command error logs.
- #6868 Support type
Closure|Expression|ModelBuilder|static|stringof$columnforQueryBuilder::orderBy(). - #6870 Updated default path for factories in Model Factory construct method.
- #6874 Using
Scannerinstead of hard code forhyperf/watchercomponent.
- #6848 Fixed bug that
LazyCollection::splitIn()cannot work caused by type hint.
- #6845 Added method
Hyperf\Database\Schema::getTables(). - #6846 Added methods
chunkByIdandchunkByIdDescintoHyperf\Database\Concerns\BuildsQueries. - #6851 Added methods
orDoesntHaveMorphandorHasMorphintoHyperf\Database\Model\Concerns. - #6858 Added methods
makeHiddenIfandmakeVisibleIfintoHyperf\Database\Model\Concerns\HidesAttributes.
- #6855 Optimized BuildsQueries to use
Conditionableinstead ofwhenandunless. - #6856 Optimized
Hyperf\Scout\Builderto useConditionableinstead ofwhenandunless. - #6860 Use
Hyperf\Collection\Enumerableinstead ofHyperf\ViewEngine\Contract\Enumerable.
- #6837 Added method
Model\Concerns\QueriesRelationships::withWhereHas(). - #6844 Added methods
whereRelationandorWhereRelationintoHyperf\Database\Model\Concerns\QueriesRelationships.
- #6809 Added cursor paginator for
hyperf/database. - #6811 Added
listrule forhyperf/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
lazyByIdandlazyByIdDescfor lazy queries. - #6825 Added methods
createDatabaseanddropDatabaseIfExistsforHyperf\Database\Schmea.
- #6813 Fixed bug that cannot read the messages from non-lower keys for
Hyperf\Constants\Annotation\Message. - #6818 Fixed bug that
updateOrInsertcannot work when the input is empty. - #6828 Fixed bug that
AOPcannot work on__construct. - #6836 Fixed bug that
SetCookie::fromStringcannot not work by invalid types.
- #6792 Support
IncrementEachandDecrementEachforHyperf\Database\Query\Builder. - #6793 Added the request body and response body to the tracer.
- #6795 Added config
rate_limit.storage.options.expired_timeforrate-limit.
- #6778 Support array for
Hyperf\Amqp\Annotation\Consumer::routingKey. - #6799 Support
numbersandfromBase64methods for\Hyperf\Stringable\Str. - #6803 Cancel AsCommand and ClosureCommand return values.
- #6757 Added
Hyperf\Collection\LazyCollection. - #6763 Added
Premature end of dataintoDetectsLostConnections. - #6767 Support
whereAll/orWhereAllwhereAny/orWhereAnyforHyperf\Database\Query\Builder. - #6774 Support Lateral Join for
Hyperf\Database\Query\Builder. - #6781 Added some methods to
Hyperf\Collection\Arr. - #6782 Added
whereJsonOverlaps,orWhereJsonOverlapsandwhereJsonDoesntOverlaptoHyperf\Database\Query\Builder. - #6783 Support
insertOrIgnoreUsingforHyperf\Database\Query\Builder. - #6784 Added
getOrPutandgetOrSetintoHyperf\Collection\Collection.
- #6777 Optimized StdoutLogger to improve log message handling.
- #6778 Optimized Collection using EnumeratesValues.
- #6755 Fixed bug that exception normalizer cannot support symfony 7.
- #6734 Auto complete options for as command and closure command.
- #6746 Added
explain()forHyperf\Database\Query\Builder. - #6749 Added some rules for
hyperf/validation. - #6752 Added
pathandpathsmethods toHyperf\Database\Seeders\Seed.
- #6738 Added
unshiftmethod toHyperf\Collection\Collection. - #6740 Support
useIndexforceIndexandignoreIndexforHyperf\Database\Query\Builder.
- #6716 #6717 Optimized exchange declaration for amqp consumer messages.
- #6721 Optimized the implementation of
WhenMethod. - #6731 Updated InteractsWithModelFactory to handle missing dependencies.
- #6728 Fixed bug that
hyperf/watchcannot work when usinghyperf/constantsenum mode.
- #6709 Added default
onClosemethod for rpc Server. - #6712 Add new methods in
Hyperf\Collection\Collection.
- #6700 Optimized the implementation of
Pluralizer.
- #6689 Fixed bug that socket-io cannot parse data with
?but withoutquery. - #6697 Fixed bug that
withoutBodycannot not work when usingSwow.
- #6680 Added
Hyperf\Coordinatorhelper functions. - #6681 Added option
typeforgen:constantwhich you can be used to generate files withconstorenum.
- #6686 Optimized
FswatchDriverwhich don't restart server by empty reading. - #6698 Upgrade
hyperf/enginetov2.11. - #6696 Automatic declare exchange when produce message.
- #6674 Added getConfig for redisPool.
- #6664 Fixed bug that
issetcannot checknullinHyperf\Collection\Collection.
- #6668 Added error handling when using
callbackin multiplexed RPC.
- #6652 Added Str trim methods.
- #6658 HEAD requests, attempt fallback to GET in
MiddlewareManager. - #6665 Added logger for
Websocket.
- #6661 Use
PHP_BINARYinstead ofphpas default php binary path forhyperf/watcher.
- #6632 Support to set headers for
websocket-client. - #6648 Return result about websocket sender
push``disconnect.
- #6633 Fixed bug that crontab will be skipped sometimes.
- #6635 Fixed AMQP
ConsumerMessage::getQueuereturn type.
- #6640 Support PHP8 Attribute for
hyperf/constants.
- #6613 Added event of release connection for
hyperf/pool.
- #6621
WebSocketHandeShakeExceptionis deprecated, please useWebSocketHandShakeExceptioninstead.
- #6609 Fixed bug that the configurations will be cleared when the
scanconfiguration does not exist.
- #6594 Added
hyperf/carboncomponent.
- #6600 Optimized the worker process to no longer output warn information after exiting.
- #6608 Optimized
CacheAheadAspectwhich store cache in another coroutine instead of blocking current coroutine.
- #6576 Added
Hyperf\Stringable\Str::apa()method. - #6577 Support setup command traits before running.
- #6579 Added
now()andtoday()helper functions. - #6590 Added
--gracefulto migrateCommand.
- #6586 Fixed bug that the command description will cause parse error when contains
--. - #6593 Fixed the error when register multi
AsCommand.
- #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
CrontabRegisterListenerdon't check configurationcrontab.enable.
- #6555 Fixed bug that
invalidOperatorcannot work well when using non-string operators. - #6563 Fixed cron dispatcher sleep accurate.
- #6550 Added default config of noop driver for
hyperf/opentracing. - #6562 Added
SqliteDriverforhyperf/cache.
- #6556 You can set an expression to model parameters, but it is not standardized.
- #6539 Optimized
retryhelper function can accept array as first parameter.
- #6482 Fixed bug that the rule
decimalcannot work well withsizeforvalidation.
- #6517 Fixed bug that the older versions of parsers cannot parse new messages for
async-queue. - #6520 Refactor UdpSocketAspect to improve coroutine handling.
- #6509 Fixed bug that
Schedule::call()cannot supportarraywhen usingcrontab.
- #6511 Optimized the serialization of
Hyperf\AsyncQueue\JobMessage. - #6516 Fixed bug that message will be lost when unpack failed.
- #6504 Added
HostReaderInterfaceforrpc-multiplex.
- #6491 Fixed bug that swagger validation collector cannot collect query parameters.
- #6500 Fixed bug that inconsistent parsing response in Rpc-Multiplex client.
- #6483 [#6487] (hyperf#6487) Added new ways to register crontab.
- #6488 Added the default implement for
Psr\Log\LoggerInterface. - #6495 Added cron support for closure-command.
- #6501 Added
Collection::replace()andCollection::replaceRecursive().
- #6480 Optimize log for crontab task skipped.
- #6489 Removed the low version conditions of
phpandswoole.
- #6449 Added method
ReflectionManager::getAllClassesByFinder. - #6468 Added support for Crontab specified operating environments.
- #6471 Added method
Arr::remove. - #6474 Added
Crontab::setOptions()andCrontab::getOptions().
- #6440 Optimized code of
Hyperf\SocketIOServer\Parser\Decoder::decode(). - #6472 Optimized code of
DispatcherFactorywhich userequireinstead ofrequire_oncefor loadingroutes. - #6473 Auto mkdir folder when using command
gen:swagger-schema. - #6477 Optimized code about binding
serverMutexandtaskMutexforCrontab. - #6479 Updated the default mutex expiration time to 60 seconds.
- #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.
- #6431 Added
UnsetContextInTaskWorkerListenerwhich can be used to unset connection context when using non-coroutine task worker.
- #6419 Fixed bug that
prepareHandlercannot work sometimes forcircuit-breaker.
- #6426 Added Annotation
RewriteReturnTypewhich used to rewrite the return type when generating models.
- #6415 Throw
InvalidArgumentExceptioninstead ofTypeErrorfor decoding an empty string when usingBase62::decode.
- #6389 Fixed bug that es version cannot be found when the index is null.
- #6406 Fixed bug that
Hyperf\Scout\Searchabledon't import namespace of functionconfig.
- #6398 Added
timezoneparameter tohyperf/crontabcomponent. - #6402 Added
template_suffixconfiguration totwigengine.
- #6372 Fixed bug that AOP not working when using variadic parameters.
- #6374 Fixed bug that
RateLimitAnnotationAspect::getWeightingAnnotation()cannot work when using configrate_limit.storage. - #6384 Fixed bug that
scoutcannot work when using elasticsearch(which version is less than 7) without index.
- #6357 Support symfony 7.x for some components such as
commandconfigdevtooldiandserver. - #6373 Support
pingmethod forgrpc client. - #6379 Support to read custom attribute for validation when using swagger.
- #6380 Support collect swagger validation rules and attribute for mediaType request body.
- #6376 Don't need to close swoole short name when don't use swoole or don't require
hyperf/polyfill-coroutinecomponent.
- #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::runReceiveCoroutinewill unset streamId before recv method. - #6361 Fixed bug that
Hyperf\SocketIOServer\Emitter\Futurecannot be resolved. - #6369 Fixed bug that the main process did not handle the abnormal exit of the fork process.
- #6342 Added
Coroutine::fork()method andCoroutine::pid()method. - #6360 Added response
content-typeheader for swagger server. - #6363 Added callable type support to the fallback property of CircuitBreaker Attribute.
- Upgrade the php version to
>=8.1 - Upgrade the swoole version to
>=5.0 - Upgrade
hyperf/engineto^2.0 - Upgrade
phpunit/phpunitto^10.0
- Support Psr7Plus.
- Support pest.
- Added
hyperf/helpercomponent. - Added
hyperf/polyfill-coroutinecomponent. - #5815 Added alias as
mysqlforpdoinhyperf/db. - #5849 Support for insert update and select using enums.
- #5894 #5897 Added
model-factorysupport forhyperf/testing. - #5898 Added
toRawSql()to Query Builders. - #5906 Added
getRawQueryLog()to Database Connection. - #5915 Added
data_forgethelper. - #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
AsCommandannotation andClosureCommandsupport. - #5950 Added
Job::setMaxAttemptsmethod anddispatchhelper function forhyperf/async-queue. - #5967 Added component
hyperf/migration-generatorwhich used to generate migrations from databases. - #5983 #5985 Added
skipCacheResultsto annotations ofhyperf/cache. - #5994 Added
eventsofcrontablifecycle. - #6039 Support semantic crontab rules.
- #6082 Added
hyperf/stdlibcomponent. - #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
processorsfor swagger.
- Move Prometheus driver dependency to suggest.
- #5586 Support grpc streaming for nacos naming service.
- #5866 Use
StrCacheinstead ofStrin 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
\Stringableinterface 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
ProcessManagerto make therunningstatus more clear. - #6184 Set logger when using safe socket in coroutine style tcp server.
- #6247 Optimized code that you can get request from
BadRequestHttpException.
- Remove unused codes in
hyperf/utils. - Remove redundant
setAccessiblemethods. - 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.
- 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 transporterwhen the status code isn't 200. - #5961 Using
enuminstead ofclassforHyperf\Amqp\ResultandHyperf\Amqp\Message\Type. - #6022 When using
Base62::decodeto decode the incorrect data, it should be thrownInvalidArgumentExceptioninstead ofTypeError. - #6128 When using multi-level directories for
hyperf/config, you can useconfig('a.c')to get the configurations fromautoload/a/c.php.
- #5771 Fixed bug that the return type of
Model::updateOrInsertisn't boolean. - #6033 Fixed bug that
RequestContextandResponseContextcannot get instance from another coroutines. - #6056 Fixed bug that
Hyperf\HttpServer\Request::hasFile()don't supportSwow. - #6260 Fixed bug that logger cannot work in
LoadBalancerInterface::refresh().
Hyperf\DB\PgSQL\PgSQLConnection::str_replace_oncewill be deprecated, please useHyperf\DB\PgSQL\PgSQLConnection::strReplaceOnceinstead.Hyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::str_replace_oncewill be deprecated, please useHyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::strReplaceOnceinstead.