mirror of
https://gitee.com/hyperf/hyperf.git
synced 2024-11-30 02:37:58 +08:00
a37af75d6e
Co-authored-by: 10470 <xiexuekun@addcn.com> Co-authored-by: zds <49744633+zds-s@users.noreply.github.com>
33 KiB
33 KiB
v3.1.37 - TBD
Optimized
- #6839 Use
anonymous classes
to avoid the duplicated class name for database migrations.
v3.1.36 - 2024-08-15
Added
- #6971 Added partitioned support for Cookie.
- #6990 Added support for retrieving the current system time with milliseconds for
Hyperf\Support\Traits\InteractsWithTime
. - #6998 Added default methods for
#[AutoController]
. (You can add methodoptions
which used to support cors middleware)
v3.1.35 - 2024-08-08
Fixed
- #6987 Fixed bug that the root path of swagger server cannot work.
v3.1.34 - 2024-08-01
Added
v3.1.33 - 2024-07-25
Optimized
- #6962 Optimized error message of command exceptions.
- #6963 Optimized code for
Model/JsonResource::toJson
.
Fixed
- #6954 Fixed bug that the connection cannot reconnect to the server in a situation where there was a failover and exchange of read and write hosts.
- #6961 Fixed bug that
websocket sender
not supportSwow
.
v3.1.32 - 2024-07-18
Fixed
- #6949 Fixed bug that restart failed when don't have
.env
. - #6953 Fixed bug that socketio-server cannot work for swow engine.
Optimized
- #6946 Removed Swoole Atomic dependency and useless restart counter in watcher.
Added
- #6950 Support
where bit functions and operators
fordatabase
.
v3.1.31 - 2024-07-11
Added
- #6936 Support to reload
.env
when usinghyperf/watcher
.
v3.1.30 - 2024-07-05
Fixed
- #6925 Fixed bug that
sortByMany
don't reset indexes forCollection
. But it will be return the same result likesortBy
inv3.2
.
v3.1.29 - 2024-07-04
Fixed
- #6925 Fixed bug that
sortByMany
cannot support options likesortBy
.
Added
v3.1.28 - 2024-06-27
Fixed
- #6900 Fixed bug that
LengthAwarePaginator::addQuery()
cannot support array$values
. - #6909 Fixed bug that
Aop
doesn't work onTrait
.
Optimized
- #6903 Optimized code for
config-nacos
.
Added
- #6885 Added validation rule
prohibiti
. - #6891 Support
cache.*.options.pool
to select redis instance forhyperf/cache
. - #6895 Support to collect enum annotations.
v3.1.27 - 2024-06-20
Added
- #6864 Added methods
getViews
andhasView
intoHyperf\Database\Schema\Schema
. - #6866 Added method
Hyperf\Database\Concerns\BuildsQueries::lazy
. - #6869 Added methods
before
andafter
intoCollection
. - #6876 Added method
Hyperf\Database\Concerns\Builder::eachById
. - #6878 Added methods
whereMorphRelation
andorWhereMorphRelation
intoHyperf\Database\Model\Concerns\QueriesRelationships
. - #6883 Added methods
getIndexes
hasIndex
andgetIndexListing
intoHyperf\Database\Schema\Builder
. - #6884 Added method
Hyperf\Database\Model\Model::updateOrFail
. - #6897 #6899 Added events
BeforeLongLangConsumerCreated
andAfterConsumerConfigCreated
intoHyperf\Kafka\ConsumerManager
.
Optimized
- #6829 Optimized the format of command error logs.
- #6868 Support type
Closure|Expression|ModelBuilder|static|string
of$column
forQueryBuilder::orderBy()
. - #6870 Updated default path for factories in Model Factory construct method.
- #6874 Using
Scanner
instead of hard code forhyperf/watcher
component.
v3.1.26 - 2024-06-13
Fixed
- #6848 Fixed bug that
LazyCollection::splitIn()
cannot work caused by type hint.
Added
- #6845 Added method
Hyperf\Database\Schema::getTables()
. - #6846 Added methods
chunkById
andchunkByIdDesc
intoHyperf\Database\Concerns\BuildsQueries
. - #6851 Added methods
orDoesntHaveMorph
andorHasMorph
intoHyperf\Database\Model\Concerns
. - #6858 Added methods
makeHiddenIf
andmakeVisibleIf
intoHyperf\Database\Model\Concerns\HidesAttributes
.
Optimized
- #6855 Optimized BuildsQueries to use
Conditionable
instead ofwhen
andunless
. - #6856 Optimized
Hyperf\Scout\Builder
to useConditionable
instead ofwhen
andunless
. - #6860 Use
Hyperf\Collection\Enumerable
instead ofHyperf\ViewEngine\Contract\Enumerable
.
v3.1.25.1 - 2024-06-07
Added
- #6837 Added method
Model\Concerns\QueriesRelationships::withWhereHas()
. - #6844 Added methods
whereRelation
andorWhereRelation
intoHyperf\Database\Model\Concerns\QueriesRelationships
.
Optimized
v3.1.25 - 2024-06-06
Added
- #6809 Added cursor paginator for
hyperf/database
. - #6811 Added
list
rule 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
lazyById
andlazyByIdDesc
for lazy queries. - #6825 Added methods
createDatabase
anddropDatabaseIfExists
forHyperf\Database\Schmea
.
Fixed
- #6813 Fixed bug that cannot read the messages from non-lower keys for
Hyperf\Constants\Annotation\Message
. - #6818 Fixed bug that
updateOrInsert
cannot work when the input is empty. - #6828 Fixed bug that
AOP
cannot work on__construct
. - #6836 Fixed bug that
SetCookie::fromString
cannot not work by invalid types.
v3.1.24 - 2024-05-30
Fixed
Added
- #6792 Support
IncrementEach
andDecrementEach
forHyperf\Database\Query\Builder
. - #6793 Added the request body and response body to the tracer.
- #6795 Added config
rate_limit.storage.options.expired_time
forrate-limit
.
Optimized
- #6778 Support array for
Hyperf\Amqp\Annotation\Consumer::routingKey
. - #6799 Support
numbers
andfromBase64
methods for\Hyperf\Stringable\Str
. - #6803 Cancel AsCommand and ClosureCommand return values.
v3.1.23 - 2024-05-23
Added
- #6757 Added
Hyperf\Collection\LazyCollection
. - #6763 Added
Premature end of data
intoDetectsLostConnections
. - #6767 Support
whereAll/orWhereAll
whereAny/orWhereAny
forHyperf\Database\Query\Builder
. - #6774 Support Lateral Join for
Hyperf\Database\Query\Builder
. - #6781 Added some methods to
Hyperf\Collection\Arr
. - #6782 Added
whereJsonOverlaps
,orWhereJsonOverlaps
andwhereJsonDoesntOverlap
toHyperf\Database\Query\Builder
. - #6783 Support
insertOrIgnoreUsing
forHyperf\Database\Query\Builder
. - #6784 Added
getOrPut
andgetOrSet
intoHyperf\Collection\Collection
.
Optimized
- #6777 Optimized StdoutLogger to improve log message handling.
- #6778 Optimized Collection using EnumeratesValues.
v3.1.22 - 2024-05-16
Fixed
- #6755 Fixed bug that exception normalizer cannot support symfony 7.
Added
- #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
path
andpaths
methods toHyperf\Database\Seeders\Seed
.
v3.1.21 - 2024-05-09
Added
- #6738 Added
unshift
method toHyperf\Collection\Collection
. - #6740 Support
useIndex
forceIndex
andignoreIndex
forHyperf\Database\Query\Builder
.
Optimized
- #6716 #6717 Optimized exchange declaration for amqp consumer messages.
- #6721 Optimized the implementation of
When
Method. - #6731 Updated InteractsWithModelFactory to handle missing dependencies.
Fixed
- #6728 Fixed bug that
hyperf/watch
cannot work when usinghyperf/constants
enum mode.
v3.1.20 - 2024-04-26
Added
- #6709 Added default
onClose
method for rpc Server. - #6712 Add new methods in
Hyperf\Collection\Collection
.
Optimized
- #6700 Optimized the implementation of
Pluralizer
.
v3.1.19 - 2024-04-18
Fixed
- #6689 Fixed bug that socket-io cannot parse data with
?
but withoutquery
. - #6697 Fixed bug that
withoutBody
cannot not work when usingSwow
.
Added
- #6680 Added
Hyperf\Coordinator
helper functions. - #6681 Added option
type
forgen:constant
which you can be used to generate files withconst
orenum
.
Optimized
- #6686 Optimized
FswatchDriver
which don't restart server by empty reading. - #6698 Upgrade
hyperf/engine
tov2.11
. - #6696 Automatic declare exchange when produce message.
v3.1.18 - 2024-04-12
Added
- #6674 Added getConfig for redisPool.
Fixed
- #6664 Fixed bug that
isset
cannot checknull
inHyperf\Collection\Collection
.
Optimized
- #6668 Added error handling when using
callback
in multiplexed RPC.
v3.1.17 - 2024-04-10
Added
- #6652 Added Str trim methods.
- #6658 HEAD requests, attempt fallback to GET in
MiddlewareManager
. - #6665 Added logger for
Websocket
.
Changed
- #6661 Use
PHP_BINARY
instead ofphp
as default php binary path forhyperf/watcher
.
v3.1.16 - 2024-04-02
Added
- #6632 Support to set headers for
websocket-client
. - #6648 Return result about websocket sender
push``disconnect
.
Fixed
- #6633 Fixed bug that crontab will be skipped sometimes.
- #6635 Fixed AMQP
ConsumerMessage::getQueue
return type.
Optimized
- #6640 Support PHP8 Attribute for
hyperf/constants
.
v3.1.15 - 2024-03-28
Added
- #6613 Added event of release connection for
hyperf/pool
.
Optimized
Deprecated
- #6621
WebSocketHandeShakeException
is deprecated, please useWebSocketHandShakeException
instead.
v3.1.14 - 2024-03-21
Fixed
- #6609 Fixed bug that the configurations will be cleared when the
scan
configuration does not exist.
Added
- #6594 Added
hyperf/carbon
component.
Optimized
- #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.
v3.1.13 - 2024-03-14
Added
- #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.
Fixed
- #6586 Fixed bug that the command description will cause parse error when contains
--
. - #6593 Fixed the error when register multi
AsCommand
.
v3.1.12 - 2024-03-07
Fixed
- #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
.
v3.1.11 - 2024-03-01
Fixed
- #6555 Fixed bug that
invalidOperator
cannot work well when using non-string operators. - #6563 Fixed cron dispatcher sleep accurate.
Added
- #6550 Added default config of noop driver for
hyperf/opentracing
. - #6562 Added
SqliteDriver
forhyperf/cache
.
Optimized
- #6556 You can set an expression to model parameters, but it is not standardized.
v3.1.10 - 2024-02-23
Added
Optimized
- #6539 Optimized
retry
helper function can accept array as first parameter.
v3.1.9 - 2024-02-18
Fixed
- #6482 Fixed bug that the rule
decimal
cannot work well withsize
forvalidation
.
Added
Optimized
- #6517 Fixed bug that the older versions of parsers cannot parse new messages for
async-queue
. - #6520 Refactor UdpSocketAspect to improve coroutine handling.
v3.1.8 - 2024-02-01
Fixed
- #6509 Fixed bug that
Schedule::call()
cannot supportarray
when usingcrontab
.
Optimized
- #6511 Optimized the serialization of
Hyperf\AsyncQueue\JobMessage
. - #6516 Fixed bug that message will be lost when unpack failed.
Added
- #6504 Added
HostReaderInterface
forrpc-multiplex
.
v3.1.7 - 2024-01-26
Fixed
- #6491 Fixed bug that swagger validation collector cannot collect query parameters.
- #6500 Fixed bug that inconsistent parsing response in Rpc-Multiplex client.
Added
- #6483 [#6487] (https://github.com/hyperf/hyperf/pull/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()
.
Optimized
- #6480 Optimize log for crontab task skipped.
- #6489 Removed the low version conditions of
php
andswoole
.
v3.1.6 - 2024-01-18
Added
- #6449 Added method
ReflectionManager::getAllClassesByFinder
. - #6468 Added support for Crontab specified operating environments.
- #6471 Added method
Arr::remove
. - #6474 Added
Crontab::setOptions()
andCrontab::getOptions()
.
Optimized
- #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.
v3.1.5 - 2024-01-04
Fixed
- #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.
Added
- #6431 Added
UnsetContextInTaskWorkerListener
which can be used to unset connection context when using non-coroutine task worker.
Optimized
v3.1.4 - 2023-12-29
Fixed
- #6419 Fixed bug that
prepareHandler
cannot work sometimes forcircuit-breaker
.
Added
- #6426 Added Annotation
RewriteReturnType
which used to rewrite the return type when generating models.
Optimized
- #6415 Throw
InvalidArgumentException
instead ofTypeError
for decoding an empty string when usingBase62::decode
.
v3.1.3 - 2023-12-21
Fixed
- #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
.
Added
- #6398 Added
timezone
parameter tohyperf/crontab
component. - #6402 Added
template_suffix
configuration totwig
engine.
v3.1.2 - 2023-12-15
Fixed
- #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.
Added
- #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.
Optimized
- #6376 Don't need to close swoole short name when don't use swoole or don't require
hyperf/polyfill-coroutine
component.
v3.1.1 - 2023-12-08
Fixed
- #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.
Added
- #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.
v3.1.0 - 2023-12-01
Dependencies Upgrade
- 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
Swow Supported
Added
- 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.
Optimized
- 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
.
Removed
- 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
.
Changed
- 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
.
Fixed
- #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()
.
Deprecated
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.