- #6664 Fixed bug that
isset
cannot checknull
inHyperf\Collection\Collection
.
- #6668 Added error handling when using
callback
in multiplexed RPC.
- #6652 Added Str trim methods.
- #6658 HEAD requests, attempt fallback to GET in
MiddlewareManager
. - #6665 Added logger for
Websocket
.
- #6661 Use
PHP_BINARY
instead ofphp
as 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::getQueue
return type.
- #6640 Support PHP8 Attribute for
hyperf/constants
.
- #6613 Added event of release connection for
hyperf/pool
.
- #6621
WebSocketHandeShakeException
is deprecated, please useWebSocketHandShakeException
instead.
- #6609 Fixed bug that the configurations will be cleared when the
scan
configuration does not exist.
- #6594 Added
hyperf/carbon
component.
- #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.
- #6576 Added
Hyperf\Stringable\Str::apa()
method. - #6577 Support setup command traits before running.
- #6579 Added
now()
andtoday()
helper functions. - #6590 Added
--graceful
to 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
CrontabRegisterListener
don't check configurationcrontab.enable
.
- #6555 Fixed bug that
invalidOperator
cannot 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
SqliteDriver
forhyperf/cache
.
- #6556 You can set an expression to model parameters, but it is not standardized.
- #6539 Optimized
retry
helper function can accept array as first parameter.
- #6482 Fixed bug that the rule
decimal
cannot work well withsize
forvalidation
.
- #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 supportarray
when usingcrontab
.
- #6511 Optimized the serialization of
Hyperf\AsyncQueue\JobMessage
. - #6516 Fixed bug that message will be lost when unpack failed.
- #6504 Added
HostReaderInterface
forrpc-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
php
andswoole
.
- #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
DispatcherFactory
which userequire
instead ofrequire_once
for loadingroutes
. - #6473 Auto mkdir folder when using command
gen:swagger-schema
. - #6477 Optimized code about binding
serverMutex
andtaskMutex
forCrontab
. - #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
UnsetContextInTaskWorkerListener
which can be used to unset connection context when using non-coroutine task worker.
- #6419 Fixed bug that
prepareHandler
cannot work sometimes forcircuit-breaker
.
- #6426 Added Annotation
RewriteReturnType
which used to rewrite the return type when generating models.
- #6415 Throw
InvalidArgumentException
instead ofTypeError
for 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\Searchable
don't import namespace of functionconfig
.
- #6398 Added
timezone
parameter tohyperf/crontab
component. - #6402 Added
template_suffix
configuration totwig
engine.
- #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
scout
cannot work when using elasticsearch(which version is less than 7) without index.
- #6357 Support symfony 7.x for some components such as
command
config
devtool
di
andserver
. - #6373 Support
ping
method 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-coroutine
component.
- #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.
- #6342 Added
Coroutine::fork()
method andCoroutine::pid()
method. - #6360 Added response
content-type
header 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/engine
to^2.0
- Upgrade
phpunit/phpunit
to^10.0
- Support Psr7Plus.
- Support pest.
- Added
hyperf/helper
component. - Added
hyperf/polyfill-coroutine
component. - #5815 Added alias as
mysql
forpdo
inhyperf/db
. - #5849 Support for insert update and select using enums.
- #5894 #5897 Added
model-factory
support forhyperf/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 andClosureCommand
support. - #5950 Added
Job::setMaxAttempts
method anddispatch
helper function forhyperf/async-queue
. - #5967 Added component
hyperf/migration-generator
which used to generate migrations from databases. - #5983 #5985 Added
skipCacheResults
to annotations ofhyperf/cache
. - #5994 Added
events
ofcrontab
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.
- Move Prometheus driver dependency to suggest.
- #5586 Support grpc streaming for nacos naming service.
- #5866 Use
StrCache
instead ofStr
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 therunning
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
.
- 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
.
- 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 ofclass
forHyperf\Amqp\Result
andHyperf\Amqp\Message\Type
. - #6022 When using
Base62::decode
to decode the incorrect data, it should be thrownInvalidArgumentException
instead 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::updateOrInsert
isn't boolean. - #6033 Fixed bug that
RequestContext
andResponseContext
cannot 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_once
will be deprecated, please useHyperf\DB\PgSQL\PgSQLConnection::strReplaceOnce
instead.Hyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::str_replace_once
will be deprecated, please useHyperf\Database\PgSQL\PostgreSqlSwooleExtConnection::strReplaceOnce
instead.