- #5832 Fixed an endless loop when socket.io parses namespace
- #5860 Fixed bug that
CoroutineMemory::clearPrefix()cannot work as expected.
- #5359 Fixed the bug that nacos no output error log when heartbeat timed out.
- #5062 Fixed bug that cannot stop server by
Ctrl C.
- #5002 Optimized the generation rules of rpc proxy class suffix, which can be customized more easily.
- #5005 Don't generate rpc proxy again when open
scan cacheable.
- #4948 Fixed memory leak caused by an exception which occurred in
Parallel.
- #4796 Fixed id repeat when generate snowflake id caused by calling
initmore than once.
- #4776 Fixed bug that graphql event collect failed.
- #4790 Fixed bug that rpn method
toRPNExpressiondoes not work in some cases.
- #4763 Added validation rule
array:key1,key2which make sure the array has no keys other thankey1andkey2. - #4781 Added
close-pull-request.ymlto close pr forread-onlyrepositories.
- #4745 Fixed null pointer exception when using
Producer::close. - #4754 Fixed the bug that monolog does not work in
2.6.0by configuringconflictwithmonolog>=2.6.0.
- #4738 Configuring a default groupId when it is null when using
hyperf/kafka.
- #4692 Fixed type hint error for node
$weightcased by nacos driver.
- #4677 Fixed bug that process exit failed when using kafka producer.
- #4686 Fixed bug that server shutdown when parse request failed for websocket server.
- #4576 Support
path_prefixfornodewhen usingrpc-client. - #4683 Added
Container::unbind()to unbind an arbitrary resolved entry.
- #4648 Fixed bug that circuit breaker couldn't call fallback on
openstate when usinghyperf/retry. - #4657 Fixed bug that last modified time was not updated after write session again when using
hyperf/session.
- #4646 Support setting
authforRedisSentinel.
- #4620 Fixed bug that the file name should be an empty string by default for
Hyperf\Memory\LockManager.
- #4588 Fixed bug that
databasedoes not supportbit. - #4589 Fixed bug that ephemeral instance register failed when using nacos.
- #4580 Added method
Hyperf\Utils\Coroutine\Concurrent::getChannel().
- #4603 Make public for method
Hyperf\ModelCache\Manager::formatModels().
- #4572 Use Hyperf\LoadBalancer\Exception\RuntimeException instead of \RuntimeException for
hyperf/load-balancer.
- #4536 Fixed bug that response header
content-typewill be set more than once sometimes when using json-rpc.
- #4527 Added some useful methods for
Hyperf\Database\Schema\Blueprint.
- #4514 Improved some performance by using lowercase headers.
- #4521 Try to connect to another one when connected redis sentinel failed.
- #4529 Split
hyperf/contextfromhyperf/utils.
- #4484 Fixed bug that
NacosDriver::isRegistereddoes not work when using nacos2.0.4.
- #4477 Support
MacroableforHyperf\HttpServer\Request.
- #4254 Added check of
grpc.enable_fork_supportoption andpcntlextension.
- #4474 Fixed bug that multiplex connection don't close after running test cases.
- #4451 Optimized code for
Hyperf\Watcher\Driver\FindNewerDriver.
- #4426 Fixed bug that view cache generated failed caused by concurrent request.
- #4449 Allow sorting on multiple criteria for
Hyperf\Utils\Collection. - #4455 Added command
gen:view-engine-cachewhich used to generate cache files in advance. - #4453 Added
Hyperf\Tracer\Aspect\ElasticserachAspectwhich used to record traces for elasticsearch. - #4458 Added
Hyperf\Di\ScanHandler\ProcScanHandlerwhich used to run application when using swow and windows.
- #4399 Fixed bug that
Redis::scandoes not work when using redis cluster.
- #4409 Added database handler for
session. - #4411 Added
Hyperf\Tracer\Aspect\DbAspectto log db records when usinghyperf/db. - #4420 Support
SSLforHyperf\Amqp\IO\SwooleIO.
- #4406 Adapt swoole 5.0 by removing swoole classes with
PSR-0. - #4429 Added type hint for
Debug::getRefCount()which only supportobject.
- #4347 Fixed bug that amqp io has been bound to more than one coroutine when out of buffer.
- #4373 Fixed the metadata generation error caused by switching coroutine for snowflake.
- #4344 Added
Hyperf\Crontab\Event\FailToExecuteevent which will be dispatched when executing crontab failed. - #4348 Support to open the generated file with your IDE automatically.
- #4350 Optimized the error message for
swoole.use_shortname. - #4360 No longer uses
Swoole\Coroutine\Client, but usesSwoole\Coroutine\Socket, which is more stable and has better performance inHyperf\Amqp\IO\SwooleIO.
- #4338 Fixed bug that the path with query params won't match route when using testing client.
- #4346 Fixed fatal error for declaration when using amqplib
3.1.1.
- #4330 Support pack vendor/bin files for
hyperf/phar. - #4331 Added method
Hyperf\Testing\Debug::getRefCount($object).
- #4308 Fixed bug that
collector-reloadfile not found when runningserver:watchwith absolute path.
- #4317 Improves
Hyperf\Utils\CollectionandHyperf\Database\Model\Collectiontype definitions.
- #4283 Fixed type hint error for
Hyperf\Grpc\Parser::deserializeMessage()when$response->datais null.
- #4284 Added method
Hyperf\Utils\Network::ip(). - #4290 Added HTTP chunk support for
hyperf/http-message. - #4291 Support dynamic
$argumentsfor functionvalue(). - #4293 Support run with absolute paths for
server:watch. - #4295 Added alias
id()forHyperf\Database\Schema\Blueprint::bigIncrements().
- #4243 Fixed the bug that key sort of the result is inconsistent with
$callablesforparallel.
- #4252 Added method
getServiceNamefor rpc client.
- #4253 Skip class which is not found by class loader at scan time.
- #4200 Fixed bug that filesystem cache driver does not work when
runtime/cachesis not a directory.
- #4157 Added
MacroableforHyperf\Utils\Arr.
- #4171 Fixed health check failed when using consul with token.
- #4188 Fixed bug that build phar failed when using composer
1.x.
- #4159 Allow
Macroable::mixinto only add macros that do not exist yet.
- #4158 Fixed bug that generate proxy class failed when using union type.
- #4129 Added methods
Str::stripTags()andStringable::stripTags().
- #4130 Fixed bug that generate model failed when using option
--with-ideandscopemethods. - #4141 Fixed bug that validator factory does not support other validators.
- #4101 Fixed bug that auth failed when password has special charsets for nacos.
- #4114 Optimized get error code after Websocket upgrade failed.
- #4119 Optimized testing client which create the directory again when the directory does not exist.
- #4088 Fixed bug that crontab rule convert
empty stringinto0accidentally. - #4096 Fixed bug that generate proxy class failed caused by variadic parameters with type.
- #4061 Fixed the conflict between the latest version of prometheus_client_php and
hyperf/metric. - #4068 Fixed bug that exit code of
Commandis incorrect when throwing an exception. - #4076 Fixed server broken caused by sending response failed.
- #4014 #4080 Support
saslandsslfor kafka. - #4045 #4082 Support to control whether to report by
tracerthrough configopentracing.enable.exception. - #4086 Support annotation for interface.
- #4084 Optimized the exception message when the attribute not found.
- #4028 Fixed the success rate calculation in grafana dashboard.
- #4030 Fixed bug that async-queue broken caused by uncompressing model failed.
- #4042 Fixed coroutines deadlock caused by cleaning up expired fds in socketio-server when stop server.
- #4013 Support
sameSite=Nonewhen return response with cookies. - #4017 Added
MacroableintoHyperf\Utils\Collection. - #4021 Added argument
$attemptsinto$callbackwhen using functionretry(). - #4040 Added method
ConsumerDelayedMessageTrait::getDeadLetterExchange()which used to rewritex-dead-letter-exchangeby yourself.
- #4017 Removed
MacroablefromHyperf\Database\Model\Collectionbecause it already exists inHyperf\Utils\Collection.
- #3997 Fixed unexpected termination of nats consumer after timeout.
- #3998 Fixed bug that
apollodoes not supporthttps.
- #4009 Optimized method
MethodDefinitionCollector::getOrParse()to avoid deprecated in PHP8.
- #4002 #4012 Support method
FormRequest::scene()which used to rewrite different rules according to different scenes. - #4011 Added some methods for
Hyperf\Utils\Str.
- #3969 Fixed type error when using
Hyperf\Validation\Rules\Unique::__toString()in PHP8. - #3979 Fixed bug that timeout property does not work in circuit breaker.
- #3986 Fixed OSS hook failed when using
SWOOLE_HOOK_NATIVE_CURL.
- #3987 Support delayed message exchange for AMQP.
- #3989 #3992 Added option
commandwhich used to define your own start command.
- #3959 Fixed validate rule
datedoes not work as expected when the value isn't string. - #3960 Fixed bug that crontab cannot be closed safely in coroutine style server.
- code-generator Added
code-generatorwhich used to regenerate classes withAttributesinstead ofDoctrine Annotations.
- #3957 Support generate the type of getAttribute with
@returnfor commandgen:model.
- #3925 Fixed bug that heartbeat failed caused by nacos light beat enabled.
- #3926 Fixed bug that the config of
config_center.drivers.nacos.clientdoes not work.
- #3924 Added health check parameters for consul service register.
- #3932 Support requeue the message when return
NACKforAMQPconsumer. - #3941 Support service register for
rpc-multiplex. - #3947 Added method
Str::maskwhich used to replace chars from a string by a given char.
- #3944 Encapsulated the code for reading aspect meta properties.
- #3897 Fixed bug that nacos instance will be registered more than once, because heartbeat failed caused by light beat enabled.
- #3905 Fixed null pointer exception when closing AMQPConnection.
- #3906 Fixed bug that close connection failed caused by wait channels flushed.
- #3908 Fixed bug that the process couldn't be restarted caused by loop which using
CoordinatorManager.
- #3872 #3873 Fixed bug that heartbeat failed when using nacos without default group.
- #3877 Fixed bug that heartbeat will be registered more than once.
- #3879 Fixed bug that
watcherdoes not work caused by proxies replaced.
- #3877 Support
lightBeatEnabledfor Nacos heartbeat.
- #3750 Fixed fatal error which caused by dispatching a non exist namespace when using
socket-io. - #3828 Fixed bug that lazy inject does not work for
Hyperf\Redis\RedisinPHP8.0. - #3845 Fixed bug that
watcherdoes not work forv2.2. - #3848 Fixed bug that the usage of registering itself like
nacos v2.1does not work. - #3866 Fixed bug that the metadata of nacos instance can't be registered successfully.
- #3763 Support chained calls for
JsonResource::wrap()andJsonResource::withoutWrapping(). - #3843 Check the status code and body of the response to ensure whether the instance already be registered.
- #3854 Support RFC 5987 for
Hyperf\HttpServer\Contract\ResponseInterface::download()which allows utf-8 encoding, percentage encoded (url-encoded).
- Upgraded
friendsofphp/php-cs-fixerto^3.0; - Upgraded
psr/containerto^1.0|^2.0; - Upgraded
egulias/email-validatorto^3.0; - Upgraded
markrogoyski/math-phpto^2.0; - 3783 Upgraded
league/flysystemto^1.0|^2.0;
- #3577
domnikl/statsdis abandoned and no longer maintained. The author suggests using theslickdeals/statsdpackage instead.
- #3334 Changed the return value of
LengthAwarePaginator::toArray()to be consistent with that ofPaginator::toArray(). - #3550 Removed
brokerandbootstrap_serverfromkafka, please usebrokersandbootstrap_serversinstead. - #3580 Changed the default priority of aspect to 0.
- #3582 Changed the consumer tag of amqp to empty string.
- #3634 Use Fork Process strategy to replace BetterReflection strategy.
- #3676 Use
promphp/prometheus_client_phpinstead ofendclothing/prometheus_client_php. - #3694 Changed
Hyperf\CircuitBreaker\CircuitBreakerInterfaceto support php8.- Changed
CircuitBreaker::inc*Counter()toCircuitBreaker::incr*Counter(). - Changed type hint for method
AbstractHandler::switch().
- Changed
- #3706 Changed the style of writing to
#[Middlewares(FooMiddleware::class)]from@Middlewares({@Middleware(FooMiddleware::class)})in PHP8. - #3715 Restructure nacos component, be sure to reread the documents.
- #3722 Removed config
config_apollo.php, please useconfig_center.phpinstead. - #3725 Removed config
config_etcd.php, please useconfig_center.phpinstead. - #3730 Removed config
brokersandupdate_brokersfrom kafka. - #3733 Removed config
zookeeper.php, please useconfig_center.phpinstead. - #3734 Split
nacosintoconfig-nacosandservice-governance-nacos.- #3772 Fixed bug that nacos driver do not work.
- #3734 Renamed
nacos-sdkasnacos. - #3737 Refactor config-center and config driver
- Added
AbstractDriverand merge the duplicate code into the abstraction class - Added
PipeMessageInterfaceto uniform the message struct of config fetcher process
- Added
- #3817 #3818 Split
service-governance-consulfromservice-governance. - #3819 Use their own configuration below
config_center.phpfor config center component which using ETCD and Nacos.
- #3636
Hyperf\Utils\Resourcewill be deprecated in v2.3, please useHyperf\Utils\ResourceGeneratorinstead.
- #3589 Added DAG component.
- #3606 Added RPN component.
- #3629 Added
Hyperf\Utils\Channel\ChannelManagerwhich used to manage channels. - #3631 Support multiplexing for AMQP component.
- #3635 Added
Hyperf\Utils\CodeGen\PhpParserwhich used to generate AST for reflection. - #3648 Added
Hyperf\Utils\CodeGen\PhpDocReaderManagerto managePhpDocReader. - #3679 Added Nacos SDK component.
- #3712 The input parameters of
InstanceProvider::update()are modified to make it more friendly.
- #3712 The input parameters of
- #3698 Support PHP8 Attribute which can replace doctrine annotations.
- #3714 Added ide-helper component.
- #3722 Added config-center component.
- #3728 Added support for
secretof Apollo. - #3743 Support custom register for service governance.
- #3753 Support long pulling mode for Apollo Client.
- #3759 Added
rpc-multiplexcomponent. - #3791 Support setting multiple annotations by inheriting
AbstractMultipleAnnotation, such as@Middleware. - #3806 Added heartbeat for nacos service governance.
- #3670 Adapt database component to support php8.
- #3673 Adapt all components to support php8.
- #3730 Optimized code for kafka component.
- Support
timeoutforProducerto avoid requests not responding. - Removed useless code with pool.
- Throw exceptions when connect kafka failed.
- Support
- #3758 Optimized code for pool which get connection again when first failed.
- #3650 Fixed bug that
ReflectionParameter::getClass()will be deprecated in php8. - #3692 Fixed bug that class proxies couldn't be included when building phar.
- #3769 Fixed bug that
config-centerconflicts withmetrics. - #3770 Fixed type error when using
Str::slug(). - #3788 Fixed type error when using
BladeCompiler::getRawPlaceholder(). - #3794 Fixed bug that
retry_intervaldoes not work forrpc-multiplex. - #3798 Fixed bug that amqp consumer couldn't restart when rabbitmq server stopped.
- #3814 Fixed bug that
libxml_disable_entity_loader()has been deprecated as of PHP 8.0.0.