- #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
init
more than once.
- #4776 Fixed bug that graphql event collect failed.
- #4790 Fixed bug that rpn method
toRPNExpression
does not work in some cases.
- #4763 Added validation rule
array:key1,key2
which make sure the array has no keys other thankey1
andkey2
. - #4781 Added
close-pull-request.yml
to close pr forread-only
repositories.
- #4745 Fixed null pointer exception when using
Producer::close
. - #4754 Fixed the bug that monolog does not work in
2.6.0
by configuringconflict
withmonolog>=2.6.0
.
- #4738 Configuring a default groupId when it is null when using
hyperf/kafka
.
- #4692 Fixed type hint error for node
$weight
cased 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_prefix
fornode
when usingrpc-client
. - #4683 Added
Container::unbind()
to unbind an arbitrary resolved entry.
- #4648 Fixed bug that circuit breaker couldn't call fallback on
open
state when usinghyperf/retry
. - #4657 Fixed bug that last modified time was not updated after write session again when using
hyperf/session
.
- #4646 Support setting
auth
forRedisSentinel
.
- #4620 Fixed bug that the file name should be an empty string by default for
Hyperf\Memory\LockManager
.
- #4588 Fixed bug that
database
does 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-type
will 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/context
fromhyperf/utils
.
- #4484 Fixed bug that
NacosDriver::isRegistered
does not work when using nacos2.0.4
.
- #4477 Support
Macroable
forHyperf\HttpServer\Request
.
- #4254 Added check of
grpc.enable_fork_support
option andpcntl
extension.
- #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-cache
which used to generate cache files in advance. - #4453 Added
Hyperf\Tracer\Aspect\ElasticserachAspect
which used to record traces for elasticsearch. - #4458 Added
Hyperf\Di\ScanHandler\ProcScanHandler
which used to run application when using swow and windows.
- #4399 Fixed bug that
Redis::scan
does not work when using redis cluster.
- #4409 Added database handler for
session
. - #4411 Added
Hyperf\Tracer\Aspect\DbAspect
to log db records when usinghyperf/db
. - #4420 Support
SSL
forHyperf\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\FailToExecute
event 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-reload
file not found when runningserver:watch
with absolute path.
- #4317 Improves
Hyperf\Utils\Collection
andHyperf\Database\Model\Collection
type definitions.
- #4283 Fixed type hint error for
Hyperf\Grpc\Parser::deserializeMessage()
when$response->data
is null.
- #4284 Added method
Hyperf\Utils\Network::ip()
. - #4290 Added HTTP chunk support for
hyperf/http-message
. - #4291 Support dynamic
$arguments
for 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
$callables
forparallel
.
- #4252 Added method
getServiceName
for 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/caches
is not a directory.
- #4157 Added
Macroable
forHyperf\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::mixin
to 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-ide
andscope
methods. - #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 string
into0
accidentally. - #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
Command
is incorrect when throwing an exception. - #4076 Fixed server broken caused by sending response failed.
- #4014 #4080 Support
sasl
andssl
for kafka. - #4045 #4082 Support to control whether to report by
tracer
through 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=None
when return response with cookies. - #4017 Added
Macroable
intoHyperf\Utils\Collection
. - #4021 Added argument
$attempts
into$callback
when using functionretry()
. - #4040 Added method
ConsumerDelayedMessageTrait::getDeadLetterExchange()
which used to rewritex-dead-letter-exchange
by yourself.
- #4017 Removed
Macroable
fromHyperf\Database\Model\Collection
because it already exists inHyperf\Utils\Collection
.
- #3997 Fixed unexpected termination of nats consumer after timeout.
- #3998 Fixed bug that
apollo
does 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
command
which used to define your own start command.
- #3959 Fixed validate rule
date
does 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-generator
which used to regenerate classes withAttributes
instead ofDoctrine Annotations
.
- #3957 Support generate the type of getAttribute with
@return
for 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.client
does not work.
- #3924 Added health check parameters for consul service register.
- #3932 Support requeue the message when return
NACK
forAMQP
consumer. - #3941 Support service register for
rpc-multiplex
. - #3947 Added method
Str::mask
which 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
watcher
does not work caused by proxies replaced.
- #3877 Support
lightBeatEnabled
for 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\Redis
inPHP8.0
. - #3845 Fixed bug that
watcher
does not work forv2.2
. - #3848 Fixed bug that the usage of registering itself like
nacos v2.1
does 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-fixer
to^3.0
; - Upgraded
psr/container
to^1.0|^2.0
; - Upgraded
egulias/email-validator
to^3.0
; - Upgraded
markrogoyski/math-php
to^2.0
; - 3783 Upgraded
league/flysystem
to^1.0|^2.0
;
- #3577
domnikl/statsd
is abandoned and no longer maintained. The author suggests using theslickdeals/statsd
package instead.
- #3334 Changed the return value of
LengthAwarePaginator::toArray()
to be consistent with that ofPaginator::toArray()
. - #3550 Removed
broker
andbootstrap_server
fromkafka
, please usebrokers
andbootstrap_servers
instead. - #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_php
instead ofendclothing/prometheus_client_php
. - #3694 Changed
Hyperf\CircuitBreaker\CircuitBreakerInterface
to 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.php
instead. - #3725 Removed config
config_etcd.php
, please useconfig_center.php
instead. - #3730 Removed config
brokers
andupdate_brokers
from kafka. - #3733 Removed config
zookeeper.php
, please useconfig_center.php
instead. - #3734 Split
nacos
intoconfig-nacos
andservice-governance-nacos
.- #3772 Fixed bug that nacos driver do not work.
- #3734 Renamed
nacos-sdk
asnacos
. - #3737 Refactor config-center and config driver
- Added
AbstractDriver
and merge the duplicate code into the abstraction class - Added
PipeMessageInterface
to uniform the message struct of config fetcher process
- Added
- #3817 #3818 Split
service-governance-consul
fromservice-governance
. - #3819 Use their own configuration below
config_center.php
for config center component which using ETCD and Nacos.
- #3636
Hyperf\Utils\Resource
will be deprecated in v2.3, please useHyperf\Utils\ResourceGenerator
instead.
- #3589 Added DAG component.
- #3606 Added RPN component.
- #3629 Added
Hyperf\Utils\Channel\ChannelManager
which used to manage channels. - #3631 Support multiplexing for AMQP component.
- #3635 Added
Hyperf\Utils\CodeGen\PhpParser
which used to generate AST for reflection. - #3648 Added
Hyperf\Utils\CodeGen\PhpDocReaderManager
to 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
secret
of Apollo. - #3743 Support custom register for service governance.
- #3753 Support long pulling mode for Apollo Client.
- #3759 Added
rpc-multiplex
component. - #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
timeout
forProducer
to 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-center
conflicts withmetrics
. - #3770 Fixed type error when using
Str::slug()
. - #3788 Fixed type error when using
BladeCompiler::getRawPlaceholder()
. - #3794 Fixed bug that
retry_interval
does 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.