- #6764 Added
Premature end of dataintoDetectsLostConnections.
- #6693 Fixed bug that socket-io cannot parse data with
?but withoutquery.
- #6455 Optimized code of Hyperf\SocketIOServer\Parser\Decoder::decode().
- #6321 Fixed bug that the jaeger cannot show the http code when using
tracer.
- #6297 Added
Hyperf\Crontab\Mutex\ServerNodeInterfaceto get unique name for server node. - #6300 Added
rate_limit.storage.options.poolwhich can be used to select the pool of redis when usingrate-limit. - #6306 Support rpc-server request lifecycle events.
- #6298 Fixed complexity context for stdout logger.
- #6303 Fixed bug that the PDO connection was broken when timed out.
- #6302 Set catch exceptions to false in
Executorclass. - #6315 Optimized the tracer component by replacing the direct instantiation with a closure at Context::getOrSet.
- #6283 Added
grpcrequest lifecycle support. - #6292 Added
Validator::setValueand makeValidator::getValuepublic.
- #6284 Fixed bug that the crontab cannot be closed when throw exceptions.
- #6291 Fixed that the crontab timer cannot be stopped sometimes.
- #6293 Optimized the code about
Arr::flatten, which is faster than before.
- #6272 Added
metric.enable_command_metricswitch. - #6273 Added
serverNameparameter toHyperf\HttpServer\Router\Dispatched.
- #6261 Handle
class_parentsreturningfalseinclass_uses_recursive. - #6271 Limit closure type crontab dispatch in WorkerStrategy.
- #6236 Support unionType param for GenerateModelIDEVisitor.
- #6246 #6252 Added crontab lifecycle events.
- #6249 Support crontab closure type.
- #6239 Improve amqp, use methods instead of
$delivery_infoand optimizeBeforeConsumeevent. - #6250 Enhance scopeDoc for generateModelIdeVisitor.
- #6253 Print error logs when collecting class reflections failed.
- #6256 Refactor
hyperf/translationclasses to use typed properties.
- #6224 Added charset param and html method for Response.
- #6232 Added
isNotFoundmethod for Dispatched. - #6233 Improved
AfterExecuteevent ofhyperf/command.
- #6226 Don't send response when the connection of grpc server has been closed.
- #6228 #6229 Make rules method in FormRequest optional.
- #6220 Added
Hyperf\Stringable\Str::replaceMatches().
- #6217 Fixed bug that
Str::replaceLastwith empty search cannot work as expected.
- #6188 Added Redis options name to support string type.
- #6193 Support http and websocket protocols at the same port for swow server.
- #6198 Added
RpcAspectand use it instead ofJsonRpcAspect. - #6200 Added switch for
ElasticserachAspectandCoroutineAspect. - #6203 Added
Hyperf\Tracer\Aspect\GrpcAspect. - #6207 Added
exception_callbackoption forhyperf/kafka.
- #6183 Fixed PriorityMiddleware for testing.
- #6185 Fixed bug that
cleanUpExpiredOncefailed when sids is empty when usingsocketio-server.
- #6177 Optimized Base62 of
hyperf/codecto support subclass rewriting.
- #6156 Enhance stringable, such as
replaceStartisJson.
- #6154 Use PHP native
json_validateto validate is json if function is available. - #6157 Record the exception message only by opening the exception switch and closing the ignore switch when using
trace. - #6167 Optimized KafkaClientFactory of
hyperf/tracer.
- #6160 Fixed bug that service governance still registers services even when
services.enable.registerisfalse. - #6162 #6163 Fixed bug that the mutex lock of
crontabcannot not work well when the crontab executed more than one hour (the default expired time).
- #6062 Added
RequestTraceListenerforhyperf/tracer. - #6143 Added
ignore_exceptionsforhyperf/tracer.
- #6151 Optimized
FailToConsumeevent forhyperf/kafka.
- #6117 Fixed bug that grpc client cannot able to be reused.
- #6146 Fixed bug that
validateJsoncannot work when using php 8.0.
- #6097 Fixed error that using non-zipkin driver of tracer.
- #6099 Fixed bug that
ConstantFrequencycannot work when usingredis. - #6110 Fixed bug that configuration of other processes were not updated when using
nacos grpc client.
- #6096 Added
getThrowablemethod to request events and crontab event. - #6094 Added some validation rules such as
ExcludeIfFileImageFileandProhibitedIf. - #6112 Added
sendSyncandsendBatchAsyncmethods forHyperf\Kafka\Producer.
- #6098 Optimize
kafkareporter forhyperf/tracer. - #6100 Optimize
HttpClientFactoryforhyperf/tracer. - #6108 Optimize
describe:routescommand, sort middleware by MiddlewareManager - #6111 Allowed output log when an exception occurs.
- #6060 Supplement the missing tag configuration items.
- #6063 Added
$serverproperty to request events. - #6070 Added
php_serializeprotocol forhyperf/rpc-multilex. - #6069 #6075 Added kafka reporter for
hyperf/tracer. - #6078 Added
Hyperf\Support\Composer::hasPackage()method. - #6083 #6084 Added middleware priority.
- #6065 Fixed bug that
Context::overrideandContext::getOrSetcannot work when using$coroutineId. - #6090 Fix the bug that cannot stop the command from terminating gracefully.
- #6046 Using the tracer instance from coroutine context.
- #6061 Enhance server config to support key-value mode.
- #6077 Don't show deprecated notice when using
#[Hyperf\Constants\Annotation\Constants]. - #6088 Optimize
Hyperf\Support\Composer.
- #6011 Fixed the issue where validation for invocable controller route requests was not working.
- #6013 Fixed the bug that
no_aspectis overridden. - #6053 Fixed bug that
Arr::haswith integer keys cannot work as expected.
- #6023 Allow using the tracer instance from context, append
Trace-Idto Response Header. - #6027 Optimized the tracing in coroutine.
- #6044 Make
Hyperf\Coroutine\Traits\Containeras deprecated.
- #5996 Support aspect to
GuzzleHttp\Client::request().
- #6004 Fixed bug that the exit code is invalid when using command to throw exceptions.
- #5969 Fixed bug that
Str::containswill cause the error result when the$needlesis[null]. - #5970 Fixed bug that
Str::startsWithandStr::endsWithwill cause the error result when the$needlesis[null].
- #5971 Added
Str::containsIgnoreCase()which determine if a given string contains a given substring regardless of case sensitivity.
- #5947 Fixed bug that lock failed when using more than one pool for amqp.
- #5954 Optimized the model generator to generate correct property comments.
- #5951 Added
SameSitesupport to session cookies. - #5955 Support
access_keyandaccess_secretfor nacos service governance. - #5957 Added
Hyperf\Codec\Packer\IgbinarySerializerPacker. - #5962 Support modify the context of sub coroutine when using test components.
- #5921 Fixed bug that
http2-clientcannot be closed when didn't open heartbeat. - #5923 Fixed bug that
nacos grpc clientcannot be closed friendly when worker exit. - #5922 Fixed bug that
ApplicationContextcannot be found when usinggrpc-client.
- #5924 Hide the abnormal output when the worker exited.
- #5909 Fixed bug that acm
client::$serversmust be accessed before initialization. - #5911 Fixed bug that nacos grpc client auth failed.
- #5912 Fixed bug that nacos grpc client cannot reconnect when the client closed.
- #5895 Added strict mode support for
IntegerandBoolean.
- #5910 Optimized code about
NacosClientFactorywhich will create nacos client instead of nacos application.
- #5880 Fixed bug that start server failed caused by swagger server name isn't string.
- #5890 Added some exception messages which used to reconnect PDO connection.
- #5886 Throw exception (executing sql failed) when used
clickhouseforhyperf/db.
- #5861 Fixed bug that
CoroutineMemory::clearPrefix()cannot work as expected.
- #5858 Throw exception when using
chunkByIdbut the column is not existed. - #5882 Move
ConfirmableTrait/DisableEventDispatcher/NullDisableEventDispatcherto Concerns.
- #5829 Fixed bug that the method
Hyperf\Database\Model\Builder::value()cannot work when using column liketable.column. - #5831 Fixed an endless loop when socket.io parses namespace.
- #5794 Fixed bug that
__FILE__and__DIR__cannot be rewritten successfully in proxy classes. - #5803 Fixed bug that
hyperf/http-servercannot match psr7. - #5808 Fixed bug that validation rules
le、lte、gt、gtedo not support comparison between numeric and string values.
- #5789 Support
psr/http-message. - #5806 Merge swow server settings with config settings.
- #5814 Added function
build_sqlwhich be used inQueryException.
- #5782 Fixed bug that prometheus cannot collect histograms.
- #5768 Improved
Hyperf\Command\Annotation\Command, support set properties for command. - #5780 Convert carrier key to string in
Zipkin\Propagation\Map.
- #5760 Added namespace for functions of
hyperf/translation. - #5761 Added
Hyperf\Coordinator\Timer::until().
- #5741 Added deprecated comments to
Hyperf\DB\MySQLConnection. - #5702 Optimized the code of
Hyperf\Metric\Adapter\Prometheus\Rediswhich allowed to rewrite the prefix about redis keys. - #5762 Use non-blocking mode for swoole process by default.
- #5721 Added
exceptionproperty to Request Lifecycle Events. - #5723 Support
Swoole 5 PgSQLforhyperf/db. - #5725 Support
Swoole 4 PgSQLforhyperf/db. - #5731 Added
Arr::hasAny().
- #5718 Optimized the code and added some test cases for
view-engine. - #5719 Optimized the code of
metricand added some unit cases. - #5720 Optimized the code of
Hyperf\Metric\Listener\OnPipeMessageto avoid message block.
- #5707 Added
Hyperf\Config\configfunction. - #5711 Added
Arr::mapWithKeys(). - #5715 Support http request lifecycle events.
- #5709 Fixed bug that the error message is wrong when the logger group not found.
- #5713 Support Server instance as default.
- #5716 Support CoroutineServer for SuperGlobals.
- #5679 Fixed bug that the type of
$timeoutin#[Task]don't matchTaskAspect. - #5684 Fixed bug that blade view engine cannot work when using break statement.
- #5680 Support store context when using
rpc-multiplex. - #5695 Added creation and update datetime columns.
- #5699 Added
Model::resolveRelationUsing()which you can set dynamic relation for model.
- #5694 Remove
hyperf/utilsfromhyperf/rpc. - #5696 Use
Hyperf\Coroutine\Coroutine::sleep()instead ofSwoole\Coroutine::sleep().
- #5672 Added some helper functions in
hyperf/support.
- #5662 Fixed bug that
pgsql-swoolecannot throw exceptions when statement execution failed.
- #5660 Split
hyperf/codecfromhyperf/utils. - #5663 Split
hyperf/serializerfromhyperf/utils. - #5666 Split
Packerstohyperf/codec. - #5668 Split
hyperf/supportfromhyperf/utils. - #5670 Split
hyperf/code-parserfromhyperf/utils. - #5671 Use
Hyperf\Coroutine\Channel\Poolinstead ofHyperf\Utils\ChannelPool. - #5674 Instead of
classesandfunctionsofHyperf\Utils.
- #5642 Fixed bug that the model cache cannot be created when using
find manyto get non-exists models. - #5643 Fixed bug that the empty caches cannot be used for
Model::findManyFromCache(). - #5649 Fixed bug init table collector cannot work for coroutine style server.
- #5634 Added
Hyperf\Stringable\str()helper function. - #5639 Added
Redis::pipeline()andRedis::transaction()support. - #5641 Support deeply nested cache relations for
model-cache. - #5646 Added
PriorityDefinitionto sort dependencies.
- #5634 Use
Hyperf\Stringable\Strinstead ofHyperf\Utils\Str. - #5636 Reduce kafka first start time and handle stop consumer logic
- #5648 Removed requirement
hyperf/utilsfromhyperf/guzzle.
- #5627 Fixed issue where coroutine context was not destroyed in
Hyperf\Context\Context::destroymethod.
- #5616 Split
ApplicationContextfromhyperf/utilstohyperf/context. - #5617 Removed the requirement
hyperf/guzzlefromhyperf/consul. - #5618 Support to set the default router for swagger.
- #5619 #5620 Split
hyperf/coroutinefromhyperf/utils. - #5621 Use
Hyperf\Context\ApplicationContextinstead ofHyperf\Utils\ApplicationContext. - #5622 Split
CoroutineProxyfromhyperf/utilstohyperf/context. - #5623 Use
Hyperf\Coroutine\Coroutineinstead ofHyperf\Utils\Coroutine. - #5624 Split Channel utils from
hyperf/utilstohyperf/coroutine. - #5629 Refactor
Hyperf\Utils\Arrthat let it extendsHyperf\Collection\Arr.
- #5606 Added
server.options.send_channel_capacityto control whether to use safe socket.
- #5593 #5598 Use
Hyperf\Collection\Collectioninstead ofHyperf\Utils\Collection. - #5594 Use
Hyperf\Collection\Arrinstead ofHyperf\Utils\Arr. - #5596 Split
hyperf/pipelinefromhyperf/utils. - #5599 Use Hyperf\Pipeline\Pipeline instead of Hyperf\Utils\Pipeline。
- #5578 Fixed bug that unable to serialize
ChannelinCrontab. - #5579 Fixed bug that
crontab:runcannot work.
- #5572 Update Http Server to use new WritableConnection implementation.
- #5577 Split
hyperf/collectionfromhyperf/utils. - #5580 Split
hyperf/conditionableandhyperf/tappablefromhyperf/utils. - #5585 Removed the requirement
consulfromservice-governance.
- #5561 Added setTimer support for
hyperf/kafka. - #5562 Added method
Query\Builder::upsert(). - #5563 Added
running channelto make sure all crontab tasks handled successfully.
- #5544 Cancel
grpc-server's dependency onhyperf/rpc. - #5550 Optimized code for crontab parser and coordinator timer.
- #5566 Optimized the type hint to
nullablefor schemas which generated bycmd. - #5569 Simplify RunCommand's dependencies.
- #4112 Added
kafka.default.enableto control the consumer start or not. - #5533 #5535 Added
client&socketconfig for kafka. - #5536 Added
hyperf/http2-client. - #5538 Support stream call for http2 client.
- #5511 Support GRPC services which can easily to registry and discovery.
- #5543 Support nacos grpc which used to listen config changed event.
- #5545 Added streaming test cases for http2 client.
- #5546 Support grpc streaming for config-nacos.
- #5539 Optimized code for
AMQPConnectionto support the latestphp-amqplib. - #5528 Optimized hot reload for
aspects. - #5541 Improve FactoryResolver.
- #5499 Support
enumforhyperf/constants. - #5508 Added
Hyperf\Rpc\Protocol::getNormalizer. - #5509 Auto register
normalizerforjson-rpc. - #5513 Use default normalizer for
rpc-multiplexand useprotocol.normalizerforrpc-server. - #5518 Added
SwooleConnection::getSocketto get swoole response. - #5520 Added
Coroutine::stats()andCoroutine::exists(). - #5525 Added
kafka.default.consume_timeoutto control the consumer for consuming messages. - #5526 Added
Hyperf\Kafka\AbstractConsumer::isEnable()to control the kafka consumer start or not.
- #5519 Fixed bug that worker cannot exit caused by kafka
producer->loop(). - #5523 Fixed bug that process stopped when kafka rebalance.
- #5510 Allow developers to replace the
normalizerofRPC Clientthemselves. - #5525 Running in an independent coroutine when consume kafka message.
- #5497 Fixed bug that
ConfigChangedcannot dispatched when usingapollo.
- #5491 Added
charAtmethod to bothStrandStringable. - #5503 Added
Hyperf\Contract\JsonDeSerializable. - #5504 Added
Hyperf\Utils\Serializer\JsonDeNormalizer.
- #5493 Optimized code for service registration which support nacos
1.xand2.x. - #5494 #5501 Do not replace
Handlerwhennative-curlis supported.
- #5492 Renamed
Hyperf\DbConnection\Listener\CreatingListenertoHyperf\DbConnection\Listener\InitUidOnCreatingListener.
- #5467 Support
Google\Rpc\StatusforGRPC. - #5472 Support
ulidanduuidfor Model. - #5476 Added ArrayAccess to Stringable.
- #5478 Added isMatch method to Str and Stringable helpers.
- #5469 Ensure that the connection must be reset the next time after broken.
- #5433 #5438 Fixed bug that the persistent service no need to send heartbeat.
- #5464 Fixed bug that swagger server cannot work when using async style server.
- #5434 Support UDP Server for Swow.
- #5444 Added
GenSchemaCommandto generate schemas for swagger. - #5451 Added method
appends($attributes)to model collections. - #5453 Added missing methods
put()andpatch()to testing HTTP client. - #5454 Added method
Hyperf\Grpc\Parser::statusFromResponse. - #5459 Added some methods of
uuidandulidforStrandStringable.
- #5042 Added
swagger.scan.pathsto rewritescan pathsfor swagger. - #5403 Support swoole server settings for swow server.
- #5404 Support multiport server for swagger.
- #5406 Added
mixinmethod toHyperf\Database\Model\Builder. - #5407 Support HTTP methods
DeleteandOptionsfor swagger. - #5409 Adds
methodsforQuery\BuilderandPaginator. - #5414 Added
clonemethod toHyperf\Database\Model\Builder. - #5418 Added
ConfigChangedevent toconfig-center. - #5429 Added
access_keyandaccess_secretwhich used to connect aliyun nacos.
- #5405 Fixed get local ip error when IPv6 exists.
- #5417 Fixed bug that database-pgsql does not support migration.
- #5421 Fixed database about boolean types for where in the json type.
- #5428 Fixed bug that metric middleware cannot work well when encountered an exception.
- #5424 Fixed bug that migrator cannot work when using
PHP8.2.
- #5411 Optimized the code of
WebSocketHandeShakeExceptionwhich should inheritanceBadRequestHttpException. - #5419 Optimized the code of
RPN. - #5422 Enable swagger by default when installed swagger component.
- #5361 Fixed bug that the current service XXX is persistent service, can't register ephemeral instance.
- #5382 Fixed bug that mix-subscriber cannot work caused by the empty auth.
- #5386 Fixed bug that non-existing method
execcalled bySwoolePostgresqlClient. - #5394 Fixed bug that
hyperf/config-apollocannot work.
- #5366 Added
forceDeletingevent tohyperf/database. - #5373 Support server settings for
SwowServer. - #5376 Support coroutine server stats for
hyperf/metric. - #5379 Added log records when nacos heartbeat failed.
- #5389 Added swagger support.
- #5395 Support validation for swagger.
- #5397 Support all swagger annotations.
- #5338 Added
addRestoreOrCreateextension toSoftDeletingScope. - #5349 Added
ResumeExitCoordinatorListener. - #5355 Added
System::getCpuCoresNum().
- #5357 Fixed bug that the coordinator timer can't stop when an exception occurs inside
$closure.
- #5342 Compatible with
tcp://host:portconfiguration redis sentry address.
- #5332 Fixed bug that
PgSQLSwooleConnection::unpreparedcannot work. - #5333 Fixed bug that database cannot work when disconnect failed.
- #5318 Fixed bug that rate-limit cannot work when using php
8.1. - #5324 Fixed bug that database cannot work when disconnect caused by connection reset by mysql.
- #5322 Fixed bug that kafka consumer cannot work when don't set
memberIdand so on. - #5327 Fixed bug that PostgresSQL can't work when create connection timed out.
- #5314 Added method
Hyperf\Coordinator\Timer::stats(). - #5323 Added method
Hyperf\Nacos\Provider\ConfigProvider::listener().
- #5308 #5309 #5310 #5311 Added
CoroutineServerSupport forhyperf/metric. - #5315 Improve
hyperf/metric. - #5326 Collect the metric of
Server::stats()by loop.
- #5305 Fixed bug that commit failed when has no active transaction for polardb.
- #5307 Fixed the parameter
$timeoutofTimer::tick()inhyperf/metric.
- #5306 Log records when release to pool failed.
- #5289 Fixed bug that
signalcannot work when usingswow. - #5303 Fixed bug that redis nsq adapter cannot work when topics is null.
- #5287 Added log records about the exception message when emit failed.
- #5292 Support Swow for
hyperf/metric. - #5301 Optimized code for
Hyperf\Rpc\PathGenerator\PathGenerator.
- The framework removes
@Annotationsupport, and usesPHP8native annotationAttribute. Before updating, be sure to check whether the project has been replaced byAttribute.
The following script can be executed to convert Doctrine Annotations to PHP8 Attributes.
Note: This script can only be executed under version 2.2
composer require hyperf/code-generator
php bin/hyperf.php code:generate -D app- Database Model upgrade script
Because the model base class has added type support for member variables, you need to use the following script to upgrade it to a new version.
composer require hyperf/code-generator
php vendor/bin/regenerate-models.php $PWD/app/Model- The framework adds more type restrictions to the class library, so when updating from
2.2to3.0, you need to run a static check to make sure it is works.
composer analysis- The framework modifies the
Http statusreturned bygRPC Serveraccording to thegRPCspecification. It is fixed at 200, andgRPC Serverreturns the correspondingstatus code. Service upgrade to version 3.x
- Upgraded
php-amqplib/php-amqplibto^3.1; - Upgraded
phpstan/phpstanto^1.0; - Upgraded
mix/redis-subscribetomix/redis-subscriber:^3.0 - Upgraded
psr/simple-cacheto^1.0|^2.0|^3.0 - Upgraded
monolog/monologto^2.7|^3.1 - Upgraded
league/flysystemto^1.0|^2.0|^3.0
- #4196 Added
Hyperf\Amqp\IO\IOFactorywhich used to create amqp io by yourself. - #4304 Support
$suffixfor traitHyperf\Utils\Traits\StaticInstance. - #4400 Added
$descriptionwhich used to set command description easily forHyperf\Command\Command. - #4277 Added
Hyperf\Utils\IPReaderto get local IP. - #4497 Added
Hyperf\Coordinator\Timerwhich can be stopped safely. - #4523 Support callback conditions for
Conditionable::when()andConditionable::unless(). - #4663 Make
Hyperf\Utils\StringableimplementsStringable. - #4700 Support coroutine style server for
socketio-server. - #4852 Added
NullDisableEventDispatcherto disable event dispatcher by default. - #4866 #4869 Added Annotation
Scenewhich use scene in FormRequest easily. - #4908 Added
Db::beforeExecuting()to register a hook which to be run just before a database query is executed. - #4909 Added
ConsumerMessageInterface::getNums()to change the number of amqp consumer by dynamically. - #4918 Added
LoadBalancerInterface::afterRefreshed()to register a hook which to be run after refresh nodes. - #4992 Added config
amqp.enablewhich used to control amqp consumer whether to start automatically and producer whether to declare automatically. - #4994 #5016 Added component
hyperf/database-pgsqlwhich you can be used to connect pgsql server. - #5007 Support for SSL encrypted connection to Redis.
- #5046 Added
Hyperf\Database\Model\Concerns\HasAttributes::getRawOriginal(). - #5052 Support parsing IPv6 host.
- #5061 Added config
symfony.event.enableto control whether to useSymfonyEventDispatcher. - #5163 Added
Pipeline::thenReturn()method to run pipes and return the result - #5160 Added
$dictionaryforStr::slug, your can rewrite some tags easily. - #5186 Added option
configfor commandserver:watch. - #5206 Support the transformation of object type to AST nodes.
- #5211 Added Annotation
CacheAheadwhich used to cache data ahead. - #5227 Added
Hyperf\WebSocketServer\Sender::getResponses(). - #5250 Added
defer_releaseconfig inhyperf/db - #5261 Added requirement
ext-posixforwatcher.
- #4147 Optimized code for nacos which you can use
http://xxx.com/yyy/instead ofhttp://xxx.com:8848/to connectnacos. - #4367 Optimized
DataFormatterInterfacewhich uses object instead of array as inputs. - #4547 Optimized code of
Str::containsStr::startsWithandStr::endsWithbased onPHP8. - #4596 Optimized
Hyperf\Context\Contextwhich supportcoroutineIdforset()override()andgetOrSet(). - #4658 The method name is used as the routing path, when the path is null in route annotations.
- #4668 Optimized class
Hyperf\Utils\Strwhose methodspadBothpadLeftandpadRightsupportmultibyte. - #4678 Close all another servers when one of them closed.
- #4688 Added
SafeCallerto avoid server shutdown which caused by exceptions. - #4715 Adjust the order of injections for controllers to avoid inject null preferentially.
- #4865 No need to check
Redis::isConnected(), because it could be connected defer or reconnected after disconnected. - #4874 Use
waitinstead ofparallelfor coroutine style tcp server. - #4875 Use the original style when regenerating models.
- #4880 Support
ignoreAnnotationsforAnnotation Reader. - #4888 Removed useless
Hyperf\Di\ClassLoader::$proxies, because merge it intoComposer\Autoload\ClassLoader::$classMap. - #4905 Removed the redundant parameters of method
Hyperf\Database\Model\Concerns\HasEvents::fireModelEvent(). - #4949 Removed useless
call()fromCoroutine::create(). - #4961 Removed proxy mode from
Hyperf\Di\ClassLoaderand OptimizedComposer::getLoader(). - #4981 Confirm before proceeding with the action when using
ConfirmableTrait, such asmigratecommand. - #5017 Check validity of file descriptor before sending message to it when using
socketio-server. - #5029 Removed useless method
call()fromcallable function. - #5078 Optimized code about creating exception from another exception.
- #5079 Catch exception for function
deferby default.
- #4199 Changed the
publicproperty$messagetoprotectedforHyperf\AsyncQueue\Event\Event. - #4214 Renamed
$circularDependencesto$checkCircularDependenciesforDag. - #4225 Split
hyperf/coordinatorfromhyperf/utils. - #4269 Changed the default priority of listener to
0from1. - #4345 Renamed
Hyperf\Kafka\Exception\ConnectionCLosedExceptiontoHyperf\Kafka\Exception\ConnectionClosedException. - #4434 The method
Hyperf\Database\Model\Builder::insertOrIgnorewill be return affected count. - #4495 Changed the default value to
nullforHyperf\DbConnection\Db::__connection(). - #4460 Use
??instead of?:for$callbackwhen usingStringable::when(). - #4502 Use
Hyperf\Engine\Channelinstead ofHyperf\Coroutine\Channelinhyperf/reactive-x. - #4611 Changed return type to
voidforHyperf\Event\Contract\ListenerInterface::process(). - #4669 Changed all annotations which only support
PHP>=8.0. - #4678 Support event dispatcher for command by default.
- #4680 Stop processes which controlled by
ProcessManagerwhen server shutdown. - #4848 Changed
$value.timeoutto$options.timeoutforCircuitBreaker. - #4930 Renamed method
AnnotationManager::getFormatedKey()toAnnotationManager::getFormattedKey(). - #4934 Throw
NoNodesAvailableExceptionwhen cannot select any node from load balancer. - #4952 Don't write pid when the
settings.pid_fileis null when using swow server. - #4979 Don't support database commands by default, please require
hyperf/devtoolor set them inautoload/commands. - #5008 Removed array type of
Trace Annotation, because don't support array. - #5036 Changed grpc server StatsCode and serializeMessage.
- #5601 Don't use
Hyperf\Framework\SymfonyEventDispatcherby default, if you listen symfony events, you must opensymfony.event.enable. - #5079 Use
(string) $throwableinstead ofsprintfforHyperf\ExceptionHandler\Formatter\FormatterInterface::format(). - #5091 Move
JsonableandXmlabletocontractfromutils. - #5092 Move
MessageBagandMessageProvidertocontractfromutils. - #5204 Transform the type of param
$serverinHyperf\WebSocketServer\Server::deferOnOpen()tomixed. - #5239 Throw exception when using
chunkByIdbut the column is not existed.
- #4756 Support
hyperf/amqp. - #4757 Support
Hyperf\Utils\Coroutine\Locker. - #4804 Support
Hyperf\Utils\WaitGroup. - #4808 Replaced
Swoole\Coroutine\ChannelbyHyperf\Engine\Channelfor all components. - #4873 Support
hyperf/websocket-server. - #4917 Support
hyperf/load-balancer. - #4924 Support TcpServer for
hyperf/server. - #4984 Support
hyperf/retry. - #4988 Support
hyperf/pool. - #4989 Support
hyperf/crontab. - #4990 Support
hyperf/nsq. - #5070 Support
hyperf/signal.
- #4199 Removed deprecated handler
Hyperf\AsyncQueue\Signal\DriverStopHandler. - #4482 Removed deprecated
Hyperf\Utils\Resource. - #4487 Removed log warning from cache component when the key is greater than 64 characters.
- #4596 Removed
Hyperf\Utils\Context, please useHyperf\Context\Contextinstead. - #4623 Removed AliyunOssHook for
hyperf/filesystem. - #4667 Removed
doctrine/annotations, please usePHP8 Attributes. - #5226 Removed
WARNINGlog message when amqp connection restart.
Hyperf\Utils\Contracts\Arrayablewill be deprecated, please useHyperf\Contract\Arrayableinstead.Hyperf\AsyncQueue\Messagewill be deprecated, please useHyperf\AsyncQueue\JobMessageinstead.Hyperf\Di\Container::getDefinitionSource()will be deprecated.
- #4549 Fixed bug that
PhpParser::getExprFromValue()does not support assoc array. - #4835 Fixed the lost description when using property
$descriptionand$signatureforhyperf/command. - #4851 Fixed bug that prometheus server will not be closed automatically when using command which enable event dispatcher.
- #4854 Fixed bug that the
socket-ioclient always reconnect when using coroutine style server. - #4885 Fixed bug that
ProxyTrait::__getParamsMapcan not work when using trait alias. - #4892 #4895 Fixed bug that
RedisAdapter::mixSubscribecannot work cased by redis prefix when usingsocketio-server. - #4910 Fixed bug that method
ComponentTagCompiler::escapeSingleQuotesOutsideOfPhpBlocks()cannot work. - #4912 Fixed bug that websocket connection will be closed after 10s when using
Swow. - #4919 #4921 Fixed bug that rpc connections can't refresh themselves after nodes changed when using
rpc-multiplex. - #4920 Fixed bug that the routing path is wrong (like
//foo) when the routing prefix is end of '/'. - #4940 Fixed memory leak caused by an exception which occurred in
Parallel. - #5100 Fixed bug that the tag
continuecannot work when usingview-engine. - #5121 Fixed bug that the SQL is not valid but the correct error message cannot be obtained when using
pgsql. - #5132 Fixed bug that the exit code of command does not work when the exception code isn't int.
- #5142 Fixed bug that the method
Request::parseHostdoes not work when host is invalid. - #5199 Fixed bug that
RedisSentinelcan't support empty password. - #5221 Fixed bug that
PGSqlSwooleConnection::affectingStatement()can't work when thesqlis wrong. - #5223 Fixed bug that
KeepaliveConnection::isTimeout()can't work when using swow. - #5229 Fixed bug that proxy class will be generated failed when using parameters who allow null in constructor.
- #5252 Fixed bug that generate rpc-client failed when the interface has parent interfaces.
- #5268 Fixed bug that abstract methods will be written by
di.