Release v3.0.0 #5274
limingxinleo
started this conversation in
General
Release v3.0.0
#5274
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
^8.0for all components;BC breaks
@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 AnnotationstoPHP8 Attributes.Note: This script can only be executed under version 2.2
composer require hyperf/code-generator php vendor/bin/regenerate-models.php $PWD/app/Model2.2to3.0, you need to run a static check to make sure it is works.Http statusreturned bygRPC Serveraccording to thegRPCspecification. It is fixed at 200, andgRPC Serverreturns the correspondingstatus code. Service upgrade to version 3.xDependencies Upgrade
php-amqplib/php-amqplibto^3.1;phpstan/phpstanto^1.0;mix/redis-subscribetomix/redis-subscriber:^3.0psr/simple-cacheto^1.0|^2.0|^3.0monolog/monologto^2.7|^3.1league/flysystemto^1.0|^2.0|^3.0Added
Hyperf\Amqp\IO\IOFactorywhich used to create amqp io by yourself.$suffixfor traitHyperf\Utils\Traits\StaticInstance.$descriptionwhich used to set command description easily forHyperf\Command\Command.Hyperf\Utils\IPReaderto get local IP.Hyperf\Coordinator\Timerwhich can be stopped safely.Conditionable::when()andConditionable::unless().Hyperf\Utils\StringableimplementsStringable.socketio-server.NullDisableEventDispatcherto disable event dispatcher by default.Scenewhich use scene in FormRequest easily.Db::beforeExecuting()to register a hook which to be run just before a database query is executed.ConsumerMessageInterface::getNums()to change the number of amqp consumer by dynamically.LoadBalancerInterface::afterRefreshed()to register a hook which to be run after refresh nodes.amqp.enablewhich used to control amqp consumer whether to start automatically and producer whether to declare automatically.hyperf/database-pgsqlwhich you can be used to connect pgsql server.Hyperf\Database\Model\Concerns\HasAttributes::getRawOriginal().symfony.event.enableto control whether to useSymfonyEventDispatcher.Pipeline::thenReturn()method to run pipes and return the result$dictionaryforStr::slug, your can rewrite some tags easily.configfor commandserver:watch.CacheAheadwhich used to cache data ahead.Hyperf\WebSocketServer\Sender::getResponses().defer_releaseconfig inhyperf/dbext-posixforwatcher.Optimized
http://xxx.com/yyy/instead ofhttp://xxx.com:8848/to connectnacos.DataFormatterInterfacewhich uses object instead of array as inputs.Str::containsStr::startsWithandStr::endsWithbased onPHP8.Hyperf\Context\Contextwhich supportcoroutineIdforset()override()andgetOrSet().Hyperf\Utils\Strwhose methodspadBothpadLeftandpadRightsupportmultibyte.SafeCallerto avoid server shutdown which caused by exceptions.Redis::isConnected(), because it could be connected defer or reconnected after disconnected.waitinstead ofparallelfor coroutine style tcp server.ignoreAnnotationsforAnnotation Reader.Hyperf\Di\ClassLoader::$proxies, because merge it intoComposer\Autoload\ClassLoader::$classMap.Hyperf\Database\Model\Concerns\HasEvents::fireModelEvent().call()fromCoroutine::create().Hyperf\Di\ClassLoaderand OptimizedComposer::getLoader().ConfirmableTrait, such asmigratecommand.socketio-server.call()fromcallable function.deferby default.Changed
publicproperty$messagetoprotectedforHyperf\AsyncQueue\Event\Event.$circularDependencesto$checkCircularDependenciesforDag.hyperf/coordinatorfromhyperf/utils.0from1.Hyperf\Kafka\Exception\ConnectionCLosedExceptiontoHyperf\Kafka\Exception\ConnectionClosedException.Hyperf\Database\Model\Builder::insertOrIgnorewill be return affected count.nullforHyperf\DbConnection\Db::__connection().??instead of?:for$callbackwhen usingStringable::when().Hyperf\Engine\Channelinstead ofHyperf\Coroutine\Channelinhyperf/reactive-x.voidforHyperf\Event\Contract\ListenerInterface::process().PHP>=8.0.ProcessManagerwhen server shutdown.$value.timeoutto$options.timeoutforCircuitBreaker.AnnotationManager::getFormatedKey()toAnnotationManager::getFormattedKey().NoNodesAvailableExceptionwhen cannot select any node from load balancer.settings.pid_fileis null when using swow server.hyperf/devtoolor set them inautoload/commands.Trace Annotation, because don't support array.Hyperf\Framework\SymfonyEventDispatcherby default, if you listen symfony events, you must opensymfony.event.enable.(string) $throwableinstead ofsprintfforHyperf\ExceptionHandler\Formatter\FormatterInterface::format().JsonableandXmlabletocontractfromutils.MessageBagandMessageProvidertocontractfromutils.$serverinHyperf\WebSocketServer\Server::deferOnOpen()tomixed.chunkByIdbut the column is not existed.Swow Supported
hyperf/amqp.Hyperf\Utils\Coroutine\Locker.Hyperf\Utils\WaitGroup.Swoole\Coroutine\ChannelbyHyperf\Engine\Channelfor all components.hyperf/websocket-server.hyperf/load-balancer.hyperf/server.hyperf/retry.hyperf/pool.hyperf/crontab.hyperf/nsq.hyperf/signal.Removed
Hyperf\AsyncQueue\Signal\DriverStopHandler.Hyperf\Utils\Resource.Hyperf\Utils\Context, please useHyperf\Context\Contextinstead.hyperf/filesystem.doctrine/annotations, please usePHP8 Attributes.WARNINGlog message when amqp connection restart.Deprecated
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.Fixed
PhpParser::getExprFromValue()does not support assoc array.$descriptionand$signatureforhyperf/command.socket-ioclient always reconnect when using coroutine style server.ProxyTrait::__getParamsMapcan not work when using trait alias.RedisAdapter::mixSubscribecannot work cased by redis prefix when usingsocketio-server.ComponentTagCompiler::escapeSingleQuotesOutsideOfPhpBlocks()cannot work.Swow.rpc-multiplex.//foo) when the routing prefix is end of '/'.Parallel.continuecannot work when usingview-engine.pgsql.Request::parseHostdoes not work when host is invalid.RedisSentinelcan't support empty password.PGSqlSwooleConnection::affectingStatement()can't work when thesqlis wrong.KeepaliveConnection::isTimeout()can't work when using swow.di.This discussion was created from the release Release v3.0.0.
Beta Was this translation helpful? Give feedback.
All reactions