2023-03-26 11:34:11 +08:00
# v3.0.14 - TBD
2023-03-28 12:51:52 +08:00
## Fixed
- [#5579 ](https://github.com/hyperf/hyperf/pull/5579 ) Fixed bug that `crontab:run` cannot work.
2023-03-26 22:31:08 +08:00
## Optimized
- [#5572 ](https://github.com/hyperf/hyperf/pull/5572 ) Update Http Server to use new WritableConnection implementation.
2023-03-28 15:47:15 +08:00
## Fixed
- [#5578 ](https://github.com/hyperf/hyperf/pull/5578 ) Fixed bug that unable to serialize `Channel` in `Crontab` .
2023-03-26 11:34:11 +08:00
# v3.0.13 - 2023-03-26
2023-03-20 13:54:11 +08:00
2023-03-22 18:14:15 +08:00
## Added
- [#5561 ](https://github.com/hyperf/hyperf/pull/5561 ) Added setTimer support for `hyperf/kafka` .
2023-03-22 22:15:47 +08:00
- [#5562 ](https://github.com/hyperf/hyperf/pull/5562 ) Added method `Query\Builder::upsert()` .
2023-03-23 21:48:38 +08:00
- [#5563 ](https://github.com/hyperf/hyperf/pull/5563 ) Added `running channel` to make sure all crontab tasks handled successfully.
2023-03-22 18:14:15 +08:00
2023-03-21 12:10:44 +08:00
## Optimized
- [#5544 ](https://github.com/hyperf/hyperf/pull/5554 ) Cancel `grpc-server` 's dependency on `hyperf/rpc` .
2023-03-23 12:50:32 +08:00
- [#5550 ](https://github.com/hyperf/hyperf/pull/5550 ) Optimized code for crontab parser and coordinator timer.
2023-03-24 09:47:11 +08:00
- [#5566 ](https://github.com/hyperf/hyperf/pull/5566 ) Optimized the type hint to `nullable` for schemas which generated by `cmd` .
2023-03-25 20:32:54 +08:00
- [#5569 ](https://github.com/hyperf/hyperf/pull/5569 ) Simplify RunCommand's dependencies.
2023-03-21 12:10:44 +08:00
2023-03-20 13:54:11 +08:00
# v3.0.12 - 2023-03-20
2023-03-15 11:45:55 +08:00
2023-03-17 09:50:50 +08:00
## Added
2023-03-18 17:45:05 +08:00
- [#4112 ](https://github.com/hyperf/hyperf/pull/4112 ) Added `kafka.default.enable` to control the consumer start or not.
2023-03-17 10:30:19 +08:00
- [#5533 ](https://github.com/hyperf/hyperf/pull/5533 ) [#5535 ](https://github.com/hyperf/hyperf/pull/5535 ) Added `client` & `socket` config for kafka.
2023-03-17 14:58:55 +08:00
- [#5536 ](https://github.com/hyperf/hyperf/pull/5536 ) Added `hyperf/http2-client` .
2023-03-17 22:07:00 +08:00
- [#5538 ](https://github.com/hyperf/hyperf/pull/5538 ) Support stream call for http2 client.
2023-03-18 16:32:36 +08:00
- [#5511 ](https://github.com/hyperf/hyperf/pull/5511 ) Support GRPC services which can easily to registry and discovery.
2023-03-20 10:59:29 +08:00
- [#5543 ](https://github.com/hyperf/hyperf/pull/5543 ) Support nacos grpc which used to listen config changed event.
2023-03-19 18:21:49 +08:00
- [#5545 ](https://github.com/hyperf/hyperf/pull/5545 ) Added streaming test cases for http2 client.
2023-03-20 13:19:19 +08:00
- [#5546 ](https://github.com/hyperf/hyperf/pull/5546 ) Support grpc streaming for config-nacos.
2023-03-17 09:50:50 +08:00
2023-03-18 00:48:52 +08:00
## Optimized
- [#5539 ](https://github.com/hyperf/hyperf/pull/5539 ) Optimized code for `AMQPConnection` to support the latest `php-amqplib` .
2023-03-18 10:25:25 +08:00
- [#5528 ](https://github.com/hyperf/hyperf/pull/5528 ) Optimized hot reload for `aspects` .
2023-03-18 11:35:32 +08:00
- [#5541 ](https://github.com/hyperf/hyperf/pull/5541 ) Improve FactoryResolver.
2023-03-18 00:48:52 +08:00
2023-03-15 11:45:55 +08:00
# v3.0.11 - 2023-03-15
2023-03-11 10:21:15 +08:00
2023-03-11 12:24:09 +08:00
## Added
2023-03-11 19:52:32 +08:00
- [#5499 ](https://github.com/hyperf/hyperf/pull/5499 ) Support `enum` for `hyperf/constants` .
2023-03-11 12:24:09 +08:00
- [#5508 ](https://github.com/hyperf/hyperf/pull/5508 ) Added `Hyperf\Rpc\Protocol::getNormalizer` .
2023-03-11 22:53:54 +08:00
- [#5509 ](https://github.com/hyperf/hyperf/pull/5509 ) Auto register `normalizer` for `json-rpc` .
- [#5513 ](https://github.com/hyperf/hyperf/pull/5513 ) Use default normalizer for `rpc-multiplex` and use `protocol.normalizer` for `rpc-server` .
2023-03-14 09:39:52 +08:00
- [#5518 ](https://github.com/hyperf/hyperf/pull/5518 ) Added `SwooleConnection::getSocket` to get swoole response.
2023-03-14 13:21:33 +08:00
- [#5520 ](https://github.com/hyperf/hyperf/pull/5520 ) Added `Coroutine::stats()` and `Coroutine::exists()` .
2023-03-15 09:34:38 +08:00
- [#5525 ](https://github.com/hyperf/hyperf/pull/5525 ) Added `kafka.default.consume_timeout` to control the consumer for consuming messages.
2023-03-15 10:05:49 +08:00
- [#5526 ](https://github.com/hyperf/hyperf/pull/5526 ) Added `Hyperf\Kafka\AbstractConsumer::isEnable()` to control the kafka consumer start or not.
2023-03-14 10:44:12 +08:00
## Fixed
- [#5519 ](https://github.com/hyperf/hyperf/pull/5519 ) Fixed bug that worker cannot exit caused by kafka `producer->loop()` .
2023-03-14 16:06:37 +08:00
- [#5523 ](https://github.com/hyperf/hyperf/pull/5523 ) Fixed bug that process stopped when kafka rebalance.
2023-03-14 10:44:12 +08:00
2023-03-11 17:05:12 +08:00
## Optimized
- [#5510 ](https://github.com/hyperf/hyperf/pull/5510 ) Allow developers to replace the `normalizer` of `RPC Client` themselves.
2023-03-15 09:34:38 +08:00
- [#5525 ](https://github.com/hyperf/hyperf/pull/5525 ) Running in an independent coroutine when consume kafka message.
2023-03-11 17:05:12 +08:00
2023-03-11 10:21:15 +08:00
# v3.0.10 - 2023-03-11
2023-03-05 12:13:54 +08:00
2023-03-10 12:54:20 +08:00
## Fixed
2023-03-11 09:34:09 +08:00
- [#5497 ](https://github.com/hyperf/hyperf/pull/5497 ) Fixed bug that `ConfigChanged` cannot dispatched when using `apollo` .
2023-03-10 12:54:20 +08:00
2023-03-07 09:20:40 +08:00
## Added
2023-03-07 09:26:14 +08:00
- [#5491 ](https://github.com/hyperf/hyperf/pull/5491 ) Added `charAt` method to both `Str` and `Stringable` .
2023-03-10 12:54:20 +08:00
- [#5503 ](https://github.com/hyperf/hyperf/pull/5503 ) Added `Hyperf\Contract\JsonDeSerializable` .
2023-03-10 13:38:21 +08:00
- [#5504 ](https://github.com/hyperf/hyperf/pull/5504 ) Added `Hyperf\Utils\Serializer\JsonDeNormalizer` .
2023-03-07 09:20:40 +08:00
2023-03-07 14:29:51 +08:00
## Optimized
- [#5493 ](https://github.com/hyperf/hyperf/pull/5493 ) Optimized code for service registration which support nacos `1.x` and `2.x` .
2023-03-11 10:21:15 +08:00
- [#5494 ](https://github.com/hyperf/hyperf/pull/5494 ) [#5501 ](https://github.com/hyperf/hyperf/pull/5501 ) Do not replace `Handler` when `native-curl` is supported.
2023-03-07 14:29:51 +08:00
2023-03-07 11:01:35 +08:00
## Changed
2023-03-11 10:21:15 +08:00
- [#5492 ](https://github.com/hyperf/hyperf/pull/5492 ) Renamed `Hyperf\DbConnection\Listener\CreatingListener` to `Hyperf\DbConnection\Listener\InitUidOnCreatingListener` .
2023-03-07 11:01:35 +08:00
2023-03-05 12:13:54 +08:00
# v3.0.9 - 2023-03-05
2023-02-26 08:25:49 +08:00
2023-03-03 20:02:28 +08:00
## Added
2023-03-05 09:59:34 +08:00
- [#5467 ](https://github.com/hyperf/hyperf/pull/5467 ) Support `Google\Rpc\Status` for `GRPC` .
2023-03-05 11:19:24 +08:00
- [#5472 ](https://github.com/hyperf/hyperf/pull/5472 ) Support `ulid` and `uuid` for Model.
2023-03-03 20:02:28 +08:00
- [#5476 ](https://github.com/hyperf/hyperf/pull/5476 ) Added ArrayAccess to Stringable.
2023-03-07 09:26:14 +08:00
- [#5478 ](https://github.com/hyperf/hyperf/pull/5478 ) Added isMatch method to Str and Stringable helpers.
2023-03-03 20:02:28 +08:00
2023-02-27 10:45:50 +08:00
## Optimized
- [#5469 ](https://github.com/hyperf/hyperf/pull/5469 ) Ensure that the connection must be reset the next time after broken.
2023-02-26 08:25:49 +08:00
# v3.0.8 - 2023-02-26
2023-02-18 06:40:54 +08:00
2023-02-21 13:05:52 +08:00
## Fixed
2023-02-22 08:04:52 +08:00
- [#5433 ](https://github.com/hyperf/hyperf/pull/5433 ) [#5438 ](https://github.com/hyperf/hyperf/pull/5438 ) Fixed bug that the persistent service no need to send heartbeat.
2023-02-25 11:12:09 +08:00
- [#5464 ](https://github.com/hyperf/hyperf/pull/5464 ) Fixed bug that swagger server cannot work when using async style server.
2023-02-21 13:05:52 +08:00
2023-02-21 14:42:40 +08:00
## Added
- [#5434 ](https://github.com/hyperf/hyperf/pull/5434 ) Support UDP Server for Swow.
2023-02-22 17:37:36 +08:00
- [#5444 ](https://github.com/hyperf/hyperf/pull/5444 ) Added `GenSchemaCommand` to generate schemas for swagger.
2023-02-23 06:53:11 +08:00
- [#5451 ](https://github.com/hyperf/hyperf/pull/5451 ) Added method `appends($attributes)` to model collections.
2023-02-23 07:09:01 +08:00
- [#5453 ](https://github.com/hyperf/hyperf/pull/5453 ) Added missing methods `put()` and `patch()` to testing HTTP client.
2023-02-24 10:35:07 +08:00
- [#5454 ](https://github.com/hyperf/hyperf/pull/5454 ) Added method `Hyperf\Grpc\Parser::statusFromResponse` .
2023-02-24 09:54:13 +08:00
- [#5459 ](https://github.com/hyperf/hyperf/pull/5459 ) Added some methods of `uuid` and `ulid` for `Str` and `Stringable` .
2023-02-21 14:42:40 +08:00
2023-02-22 07:09:52 +08:00
## Optimized
- [#5437 ](https://github.com/hyperf/hyperf/pull/5437 ) Remove unnecessary `if ` statement in `Str::length` .
2023-02-22 11:14:12 +08:00
- [#5439 ](https://github.com/hyperf/hyperf/pull/5439 ) Improve `Arr::shuffle` .
2023-02-22 07:09:52 +08:00
2023-02-18 06:40:54 +08:00
# v3.0.7 - 2023-02-18
2023-02-12 08:54:45 +08:00
2023-02-13 20:57:25 +08:00
## Added
- [#5042 ](https://github.com/hyperf/hyperf/pull/5402 ) Added `swagger.scan.paths` to rewrite `scan paths` for swagger.
2023-02-13 21:37:08 +08:00
- [#5403 ](https://github.com/hyperf/hyperf/pull/5403 ) Support swoole server settings for swow server.
2023-02-13 23:25:29 +08:00
- [#5404 ](https://github.com/hyperf/hyperf/pull/5404 ) Support multiport server for swagger.
2023-02-14 18:41:55 +08:00
- [#5406 ](https://github.com/hyperf/hyperf/pull/5406 ) Added `mixin` method to `Hyperf\Database\Model\Builder` .
2023-02-15 09:24:40 +08:00
- [#5407 ](https://github.com/hyperf/hyperf/pull/5407 ) Support HTTP methods `Delete` and `Options` for swagger.
- [#5409 ](https://github.com/hyperf/hyperf/pull/5409 ) Adds `methods` for `Query\Builder` and `Paginator` .
2023-02-15 15:51:47 +08:00
- [#5414 ](https://github.com/hyperf/hyperf/pull/5414 ) Added `clone` method to `Hyperf\Database\Model\Builder` .
2023-02-16 12:55:02 +08:00
- [#5418 ](https://github.com/hyperf/hyperf/pull/5418 ) Added `ConfigChanged` event to `config-center` .
2023-02-18 06:07:42 +08:00
- [#5429 ](https://github.com/hyperf/hyperf/pull/5429 ) Added `access_key` and `access_secret` which used to connect aliyun nacos.
2023-02-13 20:57:25 +08:00
2023-02-14 13:32:29 +08:00
## Fixed
- [#5405 ](https://github.com/hyperf/hyperf/pull/5405 ) Fixed get local ip error when IPv6 exists.
2023-02-16 13:58:21 +08:00
- [#5417 ](https://github.com/hyperf/hyperf/pull/5417 ) Fixed bug that database-pgsql does not support migration.
2023-02-18 06:09:06 +08:00
- [#5421 ](https://github.com/hyperf/hyperf/pull/5421 ) Fixed database about boolean types for where in the json type.
- [#5428 ](https://github.com/hyperf/hyperf/pull/5428 ) Fixed bug that metric middleware cannot work well when encountered an exception.
2023-02-18 06:14:38 +08:00
- [#5424 ](https://github.com/hyperf/hyperf/pull/5424 ) Fixed bug that migrator cannot work when using `PHP8.2` .
2023-02-14 13:32:29 +08:00
2023-02-15 09:42:47 +08:00
## Optimized
- [#5411 ](https://github.com/hyperf/hyperf/pull/5411 ) Optimized the code of `WebSocketHandeShakeException` which should inheritance `BadRequestHttpException` .
2023-02-16 12:34:22 +08:00
- [#5419 ](https://github.com/hyperf/hyperf/pull/5419 ) Optimized the code of `RPN` .
2023-02-16 18:35:28 +08:00
- [#5422 ](https://github.com/hyperf/hyperf/pull/5422 ) Enable swagger by default when installed swagger component.
2023-02-15 09:42:47 +08:00
2023-02-12 08:54:45 +08:00
# v3.0.6 - 2023-02-12
2023-02-05 19:17:43 +08:00
2023-02-08 16:21:41 +08:00
## Fixed
- [#5361 ](https://github.com/hyperf/hyperf/pull/5361 ) Fixed bug that the current service XXX is persistent service, can't register ephemeral instance.
2023-02-11 13:19:35 +08:00
- [#5382 ](https://github.com/hyperf/hyperf/pull/5382 ) Fixed bug that mix-subscriber cannot work caused by the empty auth.
2023-02-11 13:16:17 +08:00
- [#5386 ](https://github.com/hyperf/hyperf/pull/5386 ) Fixed bug that non-existing method `exec` called by `SwoolePostgresqlClient` .
2023-02-11 13:19:35 +08:00
- [#5394 ](https://github.com/hyperf/hyperf/pull/5394 ) Fixed bug that `hyperf/config-apollo` cannot work.
2023-02-08 16:21:41 +08:00
2023-02-08 14:42:10 +08:00
## Added
- [#5366 ](https://github.com/hyperf/hyperf/pull/5366 ) Added `forceDeleting` event to `hyperf/database` .
2023-02-08 22:23:25 +08:00
- [#5373 ](https://github.com/hyperf/hyperf/pull/5373 ) Support server settings for `SwowServer` .
2023-02-09 09:23:10 +08:00
- [#5376 ](https://github.com/hyperf/hyperf/pull/5376 ) Support coroutine server stats for `hyperf/metric` .
2023-02-09 10:52:38 +08:00
- [#5379 ](https://github.com/hyperf/hyperf/pull/5379 ) Added log records when nacos heartbeat failed.
2023-02-11 10:12:27 +08:00
- [#5389 ](https://github.com/hyperf/hyperf/pull/5389 ) Added swagger support.
2023-02-11 13:05:18 +08:00
- [#5395 ](https://github.com/hyperf/hyperf/pull/5395 ) Support validation for swagger.
2023-02-12 08:20:50 +08:00
- [#5397 ](https://github.com/hyperf/hyperf/pull/5397 ) Support all swagger annotations.
2023-02-08 14:42:10 +08:00
2023-02-05 19:17:43 +08:00
# v3.0.5 - 2023-02-05
2023-01-22 22:39:20 +08:00
2023-02-04 13:03:38 +08:00
## Added
2023-02-05 10:57:17 +08:00
- [#5338 ](https://github.com/hyperf/hyperf/pull/5338 ) Added `addRestoreOrCreate` extension to `SoftDeletingScope` .
2023-02-04 13:03:38 +08:00
- [#5349 ](https://github.com/hyperf/hyperf/pull/5349 ) Added `ResumeExitCoordinatorListener` .
2023-02-04 13:33:19 +08:00
- [#5355 ](https://github.com/hyperf/hyperf/pull/5355 ) Added `System::getCpuCoresNum()` .
2023-02-04 13:03:38 +08:00
2023-02-04 14:57:02 +08:00
## Fixed
- [#5357 ](https://github.com/hyperf/hyperf/pull/5357 ) Fixed bug that the coordinator timer can't stop when an exception occurs inside `$closure` .
2023-02-03 09:56:53 +08:00
## Optimized
- [#5342 ](https://github.com/hyperf/hyperf/pull/5342 ) Compatible with `tcp://host:port` configuration redis sentry address.
2023-01-22 22:39:20 +08:00
# v3.0.4 - 2023-01-22
2023-01-16 14:12:35 +08:00
2023-01-19 14:18:37 +08:00
## Fixed
2023-01-20 21:48:44 +08:00
- [#5332 ](https://github.com/hyperf/hyperf/pull/5332 ) Fixed bug that `PgSQLSwooleConnection::unprepared` cannot work.
2023-01-19 14:18:37 +08:00
- [#5333 ](https://github.com/hyperf/hyperf/pull/5333 ) Fixed bug that database cannot work when disconnect failed.
2023-01-16 14:12:35 +08:00
# v3.0.3 - 2023-01-16
2023-01-09 17:14:40 +08:00
2023-01-11 17:18:46 +08:00
## Fixed
2023-01-12 22:49:58 +08:00
- [#5318 ](https://github.com/hyperf/hyperf/pull/5318 ) Fixed bug that rate-limit cannot work when using php `8.1` .
2023-01-12 18:04:57 +08:00
- [#5324 ](https://github.com/hyperf/hyperf/pull/5324 ) Fixed bug that database cannot work when disconnect caused by connection reset by mysql.
2023-01-12 22:49:58 +08:00
- [#5322 ](https://github.com/hyperf/hyperf/pull/5322 ) Fixed bug that kafka consumer cannot work when don't set `memberId` and so on.
2023-01-15 19:18:00 +08:00
- [#5327 ](https://github.com/hyperf/hyperf/pull/5327 ) Fixed bug that PostgresSQL can't work when create connection timed out.
2023-01-11 17:18:46 +08:00
2023-01-11 12:01:35 +08:00
## Added
2023-01-12 22:31:04 +08:00
- [#5314 ](https://github.com/hyperf/hyperf/pull/5314 ) Added method `Hyperf\Coordinator\Timer::stats()` .
- [#5323 ](https://github.com/hyperf/hyperf/pull/5323 ) Added method `Hyperf\Nacos\Provider\ConfigProvider::listener()` .
2023-01-11 12:01:35 +08:00
2023-01-10 10:30:39 +08:00
## Optimized
2023-01-11 17:18:46 +08:00
- [#5308 ](https://github.com/hyperf/hyperf/pull/5308 ) [#5309 ](https://github.com/hyperf/hyperf/pull/5309 ) [#5310 ](https://github.com/hyperf/hyperf/pull/5310 ) [#5311 ](https://github.com/hyperf/hyperf/pull/5311 ) Added `CoroutineServer` Support for `hyperf/metric` .
2023-01-11 13:07:11 +08:00
- [#5315 ](https://github.com/hyperf/hyperf/pull/5315 ) Improve `hyperf/metric` .
2023-01-13 21:07:36 +08:00
- [#5326 ](https://github.com/hyperf/hyperf/pull/5326 ) Collect the metric of `Server::stats()` by loop.
2023-01-10 10:30:39 +08:00
2023-01-09 17:14:40 +08:00
# v3.0.2 - 2023-01-09
# Fixed
- [#5305 ](https://github.com/hyperf/hyperf/pull/5305 ) Fixed bug that commit failed when has no active transaction for polardb.
- [#5307 ](https://github.com/hyperf/hyperf/pull/5307 ) Fixed the parameter `$timeout` of `Timer::tick()` in `hyperf/metric` .
## Optimized
- [#5306 ](https://github.com/hyperf/hyperf/pull/5306 ) Log records when release to pool failed.
2023-01-09 08:06:39 +08:00
# v3.0.1 - 2023-01-09
2023-01-03 12:46:13 +08:00
2023-01-04 19:57:10 +08:00
## Fixed
2023-01-09 08:06:39 +08:00
- [#5289 ](https://github.com/hyperf/hyperf/pull/5289 ) Fixed bug that `signal` cannot work when using `swow` .
- [#5303 ](https://github.com/hyperf/hyperf/pull/5303 ) Fixed bug that redis nsq adapter cannot work when topics is null.
2023-01-04 19:57:10 +08:00
2023-01-06 15:51:18 +08:00
## Optimized
2023-01-09 08:06:39 +08:00
- [#5287 ](https://github.com/hyperf/hyperf/pull/5287 ) Added log records about the exception message when emit failed.
2023-01-06 15:51:18 +08:00
- [#5292 ](https://github.com/hyperf/hyperf/pull/5292 ) Support Swow for `hyperf/metric` .
2023-01-09 08:06:39 +08:00
- [#5301 ](https://github.com/hyperf/hyperf/pull/5301 ) Optimized code for `Hyperf\Rpc\PathGenerator\PathGenerator` .
2023-01-06 15:51:18 +08:00
2023-01-03 12:46:13 +08:00
# v3.0.0 - 2023-01-03
2021-11-02 15:06:17 +08:00
2022-02-21 20:23:48 +08:00
- [#4238 ](https://github.com/hyperf/hyperf/issues/4238 ) Upgraded the minimum php version to `^8.0` for all components;
2022-12-10 21:24:37 +08:00
- [#5087 ](https://github.com/hyperf/hyperf/pull/5087 ) Support PHP 8.2;
2021-11-02 15:06:17 +08:00
## BC breaks
2023-01-03 07:13:43 +08:00
- The framework removes `@Annotation` support, and uses `PHP8` native annotation `Attribute` . Before updating, be sure to check whether the project has been replaced by `Attribute` .
2021-11-02 15:06:17 +08:00
2023-01-03 07:13:43 +08:00
The following script can be executed to convert `Doctrine Annotations` to `PHP8 Attributes` .
2021-11-02 15:06:17 +08:00
2023-01-03 07:13:43 +08:00
**Note: This script can only be executed under version 2.2**
2021-11-02 15:06:17 +08:00
```shell
2022-04-12 18:41:01 +08:00
composer require hyperf/code-generator
php bin/hyperf.php code:generate -D app
2021-11-02 15:06:17 +08:00
```
2023-01-03 07:13:43 +08:00
- Database Model upgrade script
2021-12-27 12:18:56 +08:00
2023-01-03 07:13:43 +08:00
> 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.
2021-12-27 12:18:56 +08:00
```shell
composer require hyperf/code-generator
2021-12-27 17:14:07 +08:00
php vendor/bin/regenerate-models.php $PWD/app/Model
2021-12-27 12:18:56 +08:00
```
2023-01-03 07:13:43 +08:00
- The framework adds more type restrictions to the class library, so when updating from `2.2` to `3.0` , you need to run a static check to make sure it is works.
2022-04-12 18:41:01 +08:00
```shell
2023-01-03 07:13:43 +08:00
composer analysis
2022-04-12 18:41:01 +08:00
```
2023-01-03 07:13:43 +08:00
- The framework modifies the `Http status` returned by `gRPC Server` according to the `gRPC` specification. It is fixed at 200, and `gRPC Server` returns the corresponding `status code` . Service upgrade to version 3.x
2022-08-19 22:36:06 +08:00
2021-11-02 15:06:17 +08:00
## Dependencies Upgrade
- Upgraded `php-amqplib/php-amqplib` to `^3.1` ;
- Upgraded `phpstan/phpstan` to `^1.0` ;
2021-12-07 12:26:20 +08:00
- Upgraded `mix/redis-subscribe` to `mix/redis-subscriber:^3.0`
- Upgraded `psr/simple-cache` to `^1.0|^2.0|^3.0`
2022-06-10 16:21:17 +08:00
- Upgraded `monolog/monolog` to `^2.7|^3.1`
2022-07-06 14:32:28 +08:00
- Upgraded `league/flysystem` to `^1.0|^2.0|^3.0`
2021-11-02 15:06:17 +08:00
## Added
- [#4196 ](https://github.com/hyperf/hyperf/pull/4196 ) Added `Hyperf\Amqp\IO\IOFactory` which used to create amqp io by yourself.
2021-12-01 14:12:08 +08:00
- [#4304 ](https://github.com/hyperf/hyperf/pull/4304 ) Support `$suffix` for trait `Hyperf\Utils\Traits\StaticInstance` .
2021-12-27 17:14:07 +08:00
- [#4400 ](https://github.com/hyperf/hyperf/pull/4400 ) Added `$description` which used to set command description easily for `Hyperf\Command\Command` .
2022-01-27 13:46:54 +08:00
- [#4277 ](https://github.com/hyperf/hyperf/pull/4277 ) Added `Hyperf\Utils\IPReader` to get local IP.
2022-02-01 14:28:33 +08:00
- [#4497 ](https://github.com/hyperf/hyperf/pull/4497 ) Added `Hyperf\Coordinator\Timer` which can be stopped safely.
2022-02-15 15:31:58 +08:00
- [#4523 ](https://github.com/hyperf/hyperf/pull/4523 ) Support callback conditions for `Conditionable::when()` and `Conditionable::unless()` .
2022-04-07 10:26:59 +08:00
- [#4663 ](https://github.com/hyperf/hyperf/pull/4663 ) Make `Hyperf\Utils\Stringable` implements `Stringable` .
2022-04-30 11:47:25 +08:00
- [#4700 ](https://github.com/hyperf/hyperf/pull/4700 ) Support coroutine style server for `socketio-server` .
2022-06-16 22:54:21 +08:00
- [#4852 ](https://github.com/hyperf/hyperf/pull/4852 ) Added `NullDisableEventDispatcher` to disable event dispatcher by default.
2022-06-23 11:06:05 +08:00
- [#4866 ](https://github.com/hyperf/hyperf/pull/4866 ) [#4869 ](https://github.com/hyperf/hyperf/pull/4869 ) Added Annotation `Scene` which use scene in FormRequest easily.
2022-07-08 11:16:41 +08:00
- [#4908 ](https://github.com/hyperf/hyperf/pull/4908 ) Added `Db::beforeExecuting()` to register a hook which to be run just before a database query is executed.
2022-07-08 11:40:48 +08:00
- [#4909 ](https://github.com/hyperf/hyperf/pull/4909 ) Added `ConsumerMessageInterface::getNums()` to change the number of amqp consumer by dynamically.
2022-07-12 12:46:09 +08:00
- [#4918 ](https://github.com/hyperf/hyperf/pull/4918 ) Added `LoadBalancerInterface::afterRefreshed()` to register a hook which to be run after refresh nodes.
2022-08-17 15:51:10 +08:00
- [#4992 ](https://github.com/hyperf/hyperf/pull/4992 ) Added config `amqp.enable` which used to control amqp consumer whether to start automatically and producer whether to declare automatically.
2022-08-15 19:50:37 +08:00
- [#4994 ](https://github.com/hyperf/hyperf/pull/4994 ) [#5016 ](https://github.com/hyperf/hyperf/pull/5016 ) Added component `hyperf/database-pgsql` which you can be used to connect pgsql server.
2022-08-17 17:05:07 +08:00
- [#5007 ](https://github.com/hyperf/hyperf/pull/5007 ) Support for SSL encrypted connection to Redis.
2022-08-22 19:58:23 +08:00
- [#5046 ](https://github.com/hyperf/hyperf/pull/5046 ) Added `Hyperf\Database\Model\Concerns\HasAttributes::getRawOriginal()` .
2022-08-24 10:53:05 +08:00
- [#5052 ](https://github.com/hyperf/hyperf/pull/5052 ) Support parsing IPv6 host.
2022-10-28 10:40:46 +08:00
- [#5061 ](https://github.com/hyperf/hyperf/pull/5061 ) Added config `symfony.event.enable` to control whether to use `SymfonyEventDispatcher` .
- [#5163 ](https://github.com/hyperf/hyperf/pull/5163 ) Added `Pipeline::thenReturn()` method to run pipes and return the result
2022-10-29 09:45:19 +08:00
- [#5160 ](https://github.com/hyperf/hyperf/pull/5160 ) Added `$dictionary` for `Str::slug` , your can rewrite some tags easily.
2022-11-09 18:33:14 +08:00
- [#5186 ](https://github.com/hyperf/hyperf/pull/5186 ) Added option `config` for command `server:watch` .
2022-11-18 17:11:18 +08:00
- [#5206 ](https://github.com/hyperf/hyperf/pull/5206 ) Support the transformation of object type to AST nodes.
2022-11-22 12:29:12 +08:00
- [#5211 ](https://github.com/hyperf/hyperf/pull/5211 ) Added Annotation `CacheAhead` which used to cache data ahead.
2022-11-28 16:56:48 +08:00
- [#5227 ](https://github.com/hyperf/hyperf/pull/5227 ) Added `Hyperf\WebSocketServer\Sender::getResponses()` .
2022-12-20 17:18:22 +08:00
- [#5250 ](https://github.com/hyperf/hyperf/pull/5250 ) Added `defer_release` config in `hyperf/db`
2022-12-27 10:58:03 +08:00
- [#5261 ](https://github.com/hyperf/hyperf/pull/5261 ) Added requirement `ext-posix` for `watcher` .
2021-11-02 16:57:36 +08:00
2021-11-02 20:37:59 +08:00
## Optimized
- [#4147 ](https://github.com/hyperf/hyperf/pull/4147 ) Optimized code for nacos which you can use `http://xxx.com/yyy/` instead of `http://xxx.com:8848/` to connect `nacos` .
2021-12-16 15:22:52 +08:00
- [#4367 ](https://github.com/hyperf/hyperf/pull/4367 ) Optimized `DataFormatterInterface` which uses object instead of array as inputs.
2022-04-17 21:00:09 +08:00
- [#4547 ](https://github.com/hyperf/hyperf/pull/4547 ) Optimized code of `Str::contains` `Str::startsWith` and `Str::endsWith` based on `PHP8` .
2022-03-11 14:02:57 +08:00
- [#4596 ](https://github.com/hyperf/hyperf/pull/4596 ) Optimized `Hyperf\Context\Context` which support `coroutineId` for `set()` `override()` and `getOrSet()` .
2022-04-17 18:56:43 +08:00
- [#4658 ](https://github.com/hyperf/hyperf/pull/4658 ) The method name is used as the routing path, when the path is null in route annotations.
2022-04-12 14:43:18 +08:00
- [#4668 ](https://github.com/hyperf/hyperf/pull/4668 ) Optimized class `Hyperf\Utils\Str` whose methods `padBoth` `padLeft` and `padRight` support `multibyte` .
2022-04-13 20:34:09 +08:00
- [#4678 ](https://github.com/hyperf/hyperf/pull/4679 ) Close all another servers when one of them closed.
2022-04-15 18:00:56 +08:00
- [#4688 ](https://github.com/hyperf/hyperf/pull/4688 ) Added `SafeCaller` to avoid server shutdown which caused by exceptions.
2022-04-30 11:56:44 +08:00
- [#4715 ](https://github.com/hyperf/hyperf/pull/4715 ) Adjust the order of injections for controllers to avoid inject null preferentially.
2022-06-22 17:18:50 +08:00
- [#4865 ](https://github.com/hyperf/hyperf/pull/4865 ) No need to check `Redis::isConnected()` , because it could be connected defer or reconnected after disconnected.
2022-06-23 17:40:15 +08:00
- [#4874 ](https://github.com/hyperf/hyperf/pull/4874 ) Use `wait` instead of `parallel` for coroutine style tcp server.
2022-06-24 15:54:39 +08:00
- [#4875 ](https://github.com/hyperf/hyperf/pull/4875 ) Use the original style when regenerating models.
2022-06-26 07:58:47 +08:00
- [#4880 ](https://github.com/hyperf/hyperf/pull/4880 ) Support `ignoreAnnotations` for `Annotation Reader` .
2022-06-30 18:34:16 +08:00
- [#4888 ](https://github.com/hyperf/hyperf/pull/4888 ) Removed useless `Hyperf\Di\ClassLoader::$proxies` , because merge it into `Composer\Autoload\ClassLoader::$classMap` .
2022-07-07 09:16:20 +08:00
- [#4905 ](https://github.com/hyperf/hyperf/pull/4905 ) Removed the redundant parameters of method `Hyperf\Database\Model\Concerns\HasEvents::fireModelEvent()` .
2022-07-21 14:46:58 +08:00
- [#4949 ](https://github.com/hyperf/hyperf/pull/4949 ) Removed useless `call()` from `Coroutine::create()` .
2022-07-29 12:52:11 +08:00
- [#4961 ](https://github.com/hyperf/hyperf/pull/4961 ) Removed proxy mode from `Hyperf\Di\ClassLoader` and Optimized `Composer::getLoader()` .
2022-08-04 23:18:06 +08:00
- [#4981 ](https://github.com/hyperf/hyperf/pull/4981 ) Confirm before proceeding with the action when using `ConfirmableTrait` , such as `migrate` command.
2022-08-15 22:19:47 +08:00
- [#5017 ](https://github.com/hyperf/hyperf/pull/5017 ) Check validity of file descriptor before sending message to it when using `socketio-server` .
2022-08-17 15:17:48 +08:00
- [#5029 ](https://github.com/hyperf/hyperf/pull/5029 ) Removed useless method `call()` from `callable function` .
2022-09-06 15:34:23 +08:00
- [#5078 ](https://github.com/hyperf/hyperf/pull/5078 ) Optimized code about creating exception from another exception.
2022-09-07 10:40:54 +08:00
- [#5079 ](https://github.com/hyperf/hyperf/pull/5079 ) Catch exception for function `defer` by default.
2021-11-02 20:37:59 +08:00
2021-11-04 11:50:02 +08:00
## Changed
2021-11-05 10:42:57 +08:00
- [#4199 ](https://github.com/hyperf/hyperf/pull/4199 ) Changed the `public` property `$message` to `protected` for `Hyperf\AsyncQueue\Event\Event` .
2021-11-04 11:50:02 +08:00
- [#4214 ](https://github.com/hyperf/hyperf/pull/4214 ) Renamed `$circularDependences` to `$checkCircularDependencies` for `Dag` .
2021-11-05 16:06:17 +08:00
- [#4225 ](https://github.com/hyperf/hyperf/pull/4225 ) Split `hyperf/coordinator` from `hyperf/utils` .
2021-11-18 11:07:53 +08:00
- [#4269 ](https://github.com/hyperf/hyperf/pull/4269 ) Changed the default priority of listener to `0` from `1` .
2021-12-13 19:39:48 +08:00
- [#4345 ](https://github.com/hyperf/hyperf/pull/4345 ) Renamed `Hyperf\Kafka\Exception\ConnectionCLosedException` to `Hyperf\Kafka\Exception\ConnectionClosedException` .
2022-01-09 10:17:07 +08:00
- [#4434 ](https://github.com/hyperf/hyperf/pull/4434 ) The method `Hyperf\Database\Model\Builder::insertOrIgnore` will be return affected count.
2022-02-01 12:34:22 +08:00
- [#4495 ](https://github.com/hyperf/hyperf/pull/4495 ) Changed the default value to `null` for `Hyperf\DbConnection\Db::__connection()` .
2022-02-05 19:26:37 +08:00
- [#4460 ](https://github.com/hyperf/hyperf/pull/4460 ) Use `??` instead of `?:` for `$callback` when using `Stringable::when()` .
2022-02-07 15:48:35 +08:00
- [#4502 ](https://github.com/hyperf/hyperf/pull/4502 ) Use `Hyperf\Engine\Channel` instead of `Hyperf\Coroutine\Channel` in `hyperf/reactive-x` .
2022-03-18 09:55:36 +08:00
- [#4611 ](https://github.com/hyperf/hyperf/pull/4611 ) Changed return type to `void` for `Hyperf\Event\Contract\ListenerInterface::process()` .
2022-04-12 18:41:01 +08:00
- [#4669 ](https://github.com/hyperf/hyperf/pull/4669 ) Changed all annotations which only support `PHP` >= `8.0` .
2022-04-13 18:33:32 +08:00
- [#4678 ](https://github.com/hyperf/hyperf/pull/4678 ) Support event dispatcher for command by default.
2022-04-13 21:28:07 +08:00
- [#4680 ](https://github.com/hyperf/hyperf/pull/4680 ) Stop processes which controlled by `ProcessManager` when server shutdown.
2022-06-16 14:36:55 +08:00
- [#4848 ](https://github.com/hyperf/hyperf/pull/4848 ) Changed `$value.timeout` to `$options.timeout` for `CircuitBreaker` .
2022-07-15 17:10:49 +08:00
- [#4930 ](https://github.com/hyperf/hyperf/pull/4930 ) Renamed method `AnnotationManager::getFormatedKey()` to `AnnotationManager::getFormattedKey()` .
2022-07-19 22:14:36 +08:00
- [#4934 ](https://github.com/hyperf/hyperf/pull/4934 ) Throw `NoNodesAvailableException` when cannot select any node from load balancer.
2022-07-21 20:01:42 +08:00
- [#4952 ](https://github.com/hyperf/hyperf/pull/4952 ) Don't write pid when the `settings.pid_file` is null when using swow server.
2022-08-03 19:00:16 +08:00
- [#4979 ](https://github.com/hyperf/hyperf/pull/4979 ) Don't support database commands by default, please require `hyperf/devtool` or set them in `autoload/commands` .
2022-08-15 21:00:34 +08:00
- [#5008 ](https://github.com/hyperf/hyperf/pull/5008 ) Removed array type of `Trace Annotation` , because don't support array.
2022-08-19 22:36:06 +08:00
- [#5036 ](https://github.com/hyperf/hyperf/pull/5036 ) Changed grpc server StatsCode and serializeMessage.
2022-08-27 14:42:23 +08:00
- [#5601 ](https://github.com/hyperf/hyperf/pull/5061 ) Don't use `Hyperf\Framework\SymfonyEventDispatcher` by default, if you listen symfony events, you must open `symfony.event.enable` .
2022-09-07 10:40:54 +08:00
- [#5079 ](https://github.com/hyperf/hyperf/pull/5079 ) Use `(string) $throwable` instead of `sprintf` for `Hyperf\ExceptionHandler\Formatter\FormatterInterface::format()` .
2022-09-18 10:26:01 +08:00
- [#5091 ](https://github.com/hyperf/hyperf/pull/5091 ) Move `Jsonable` and `Xmlable` to `contract` from `utils` .
2022-09-20 10:38:43 +08:00
- [#5092 ](https://github.com/hyperf/hyperf/pull/5092 ) Move `MessageBag` and `MessageProvider` to `contract` from `utils` .
2022-11-17 16:56:13 +08:00
- [#5204 ](https://github.com/hyperf/hyperf/pull/5204 ) Transform the type of param `$server` in `Hyperf\WebSocketServer\Server::deferOnOpen()` to `mixed` .
2022-12-10 20:14:47 +08:00
- [#5239 ](https://github.com/hyperf/hyperf/pull/5239 ) Throw exception when using `chunkById` but the column is not existed.
2021-11-04 11:50:02 +08:00
2022-05-17 08:26:40 +08:00
## Swow Supported
2022-05-17 10:17:04 +08:00
- [#4756 ](https://github.com/hyperf/hyperf/pull/4756 ) Support `hyperf/amqp` .
2022-05-17 08:26:40 +08:00
- [#4757 ](https://github.com/hyperf/hyperf/pull/4757 ) Support `Hyperf\Utils\Coroutine\Locker` .
2022-06-03 22:41:50 +08:00
- [#4804 ](https://github.com/hyperf/hyperf/pull/4804 ) Support `Hyperf\Utils\WaitGroup` .
2022-06-04 15:51:29 +08:00
- [#4808 ](https://github.com/hyperf/hyperf/pull/4808 ) Replaced `Swoole\Coroutine\Channel` by `Hyperf\Engine\Channel` for all components.
2022-06-23 17:19:07 +08:00
- [#4873 ](https://github.com/hyperf/hyperf/pull/4873 ) Support `hyperf/websocket-server` .
2022-07-12 11:51:41 +08:00
- [#4917 ](https://github.com/hyperf/hyperf/pull/4917 ) Support `hyperf/load-balancer` .
2022-07-13 20:46:57 +08:00
- [#4924 ](https://github.com/hyperf/hyperf/pull/4924 ) Support TcpServer for `hyperf/server` .
2022-08-05 07:19:22 +08:00
- [#4984 ](https://github.com/hyperf/hyperf/pull/4984 ) Support `hyperf/retry` .
2022-08-06 11:30:54 +08:00
- [#4988 ](https://github.com/hyperf/hyperf/pull/4988 ) Support `hyperf/pool` .
2022-08-06 11:46:53 +08:00
- [#4989 ](https://github.com/hyperf/hyperf/pull/4989 ) Support `hyperf/crontab` .
2022-08-06 15:09:08 +08:00
- [#4990 ](https://github.com/hyperf/hyperf/pull/4990 ) Support `hyperf/nsq` .
2022-09-05 14:31:26 +08:00
- [#5070 ](https://github.com/hyperf/hyperf/pull/5070 ) Support `hyperf/signal` .
2022-05-17 08:26:40 +08:00
2021-11-02 16:57:36 +08:00
## Removed
- [#4199 ](https://github.com/hyperf/hyperf/pull/4199 ) Removed deprecated handler `Hyperf\AsyncQueue\Signal\DriverStopHandler` .
2022-01-26 10:54:31 +08:00
- [#4482 ](https://github.com/hyperf/hyperf/pull/4482 ) Removed deprecated `Hyperf\Utils\Resource` .
- [#4487 ](https://github.com/hyperf/hyperf/pull/4487 ) Removed log warning from cache component when the key is greater than 64 characters.
2022-03-11 14:02:57 +08:00
- [#4596 ](https://github.com/hyperf/hyperf/pull/4596 ) Removed `Hyperf\Utils\Context` , please use `Hyperf\Context\Context` instead.
2022-03-23 17:04:34 +08:00
- [#4623 ](https://github.com/hyperf/hyperf/pull/4623 ) Removed AliyunOssHook for `hyperf/filesystem` .
2022-04-12 18:14:22 +08:00
- [#4667 ](https://github.com/hyperf/hyperf/pull/4667 ) Removed `doctrine/annotations` , please use `PHP8 Attributes` .
2022-11-28 11:33:43 +08:00
- [#5226 ](https://github.com/hyperf/hyperf/pull/5226 ) Removed `WARNING` log message when amqp connection restart.
2021-11-23 19:47:49 +08:00
## Deprecated
- `Hyperf\Utils\Contracts\Arrayable` will be deprecated, please use `Hyperf\Contract\Arrayable` instead.
2021-12-11 09:47:27 +08:00
- `Hyperf\AsyncQueue\Message` will be deprecated, please use `Hyperf\AsyncQueue\JobMessage` instead.
2022-08-03 19:26:13 +08:00
- `Hyperf\Di\Container::getDefinitionSource()` will be deprecated.
2022-02-21 20:23:48 +08:00
## Fixed
- [#4549 ](https://github.com/hyperf/hyperf/pull/4549 ) Fixed bug that `PhpParser::getExprFromValue()` does not support assoc array.
2022-06-14 09:35:03 +08:00
- [#4835 ](https://github.com/hyperf/hyperf/pull/4835 ) Fixed the lost description when using property `$description` and `$signature` for `hyperf/command` .
2022-06-16 21:05:28 +08:00
- [#4851 ](https://github.com/hyperf/hyperf/pull/4851 ) Fixed bug that prometheus server will not be closed automatically when using command which enable event dispatcher.
2022-06-20 09:53:54 +08:00
- [#4854 ](https://github.com/hyperf/hyperf/pull/4854 ) Fixed bug that the `socket-io` client always reconnect when using coroutine style server.
2022-06-30 09:58:36 +08:00
- [#4885 ](https://github.com/hyperf/hyperf/pull/4885 ) Fixed bug that `ProxyTrait::__getParamsMap` can not work when using trait alias.
2022-07-04 12:23:29 +08:00
- [#4892 ](https://github.com/hyperf/hyperf/pull/4892 ) [#4895 ](https://github.com/hyperf/hyperf/pull/4895 ) Fixed bug that `RedisAdapter::mixSubscribe` cannot work cased by redis prefix when using `socketio-server` .
2022-07-08 11:55:04 +08:00
- [#4910 ](https://github.com/hyperf/hyperf/pull/4910 ) Fixed bug that method `ComponentTagCompiler::escapeSingleQuotesOutsideOfPhpBlocks()` cannot work.
2022-07-09 13:19:52 +08:00
- [#4912 ](https://github.com/hyperf/hyperf/pull/4912 ) Fixed bug that websocket connection will be closed after 10s when using `Swow` .
2022-07-12 13:48:16 +08:00
- [#4919 ](https://github.com/hyperf/hyperf/pull/4919 ) [#4921 ](https://github.com/hyperf/hyperf/pull/4921 ) Fixed bug that rpc connections can't refresh themselves after nodes changed when using `rpc-multiplex` .
2022-07-13 09:27:36 +08:00
- [#4920 ](https://github.com/hyperf/hyperf/pull/4920 ) Fixed bug that the routing path is wrong (like `//foo` ) when the routing prefix is end of '/'.
2022-07-19 21:55:50 +08:00
- [#4940 ](https://github.com/hyperf/hyperf/pull/4940 ) Fixed memory leak caused by an exception which occurred in `Parallel` .
2022-09-22 11:17:07 +08:00
- [#5100 ](https://github.com/hyperf/hyperf/pull/5100 ) Fixed bug that the tag `continue` cannot work when using `view-engine` .
2022-10-11 10:37:54 +08:00
- [#5121 ](https://github.com/hyperf/hyperf/pull/5121 ) Fixed bug that the SQL is not valid but the correct error message cannot be obtained when using `pgsql` .
2022-10-11 19:30:18 +08:00
- [#5132 ](https://github.com/hyperf/hyperf/pull/5132 ) Fixed bug that the exit code of command does not work when the exception code isn't int.
2022-12-27 14:08:25 +08:00
- [#5142 ](https://github.com/hyperf/hyperf/pull/5142 ) Fixed bug that the method `Request::parseHost` does not work when host is invalid.
2022-11-16 10:16:48 +08:00
- [#5199 ](https://github.com/hyperf/hyperf/pull/5199 ) Fixed bug that `RedisSentinel` can't support empty password.
2022-11-25 10:48:22 +08:00
- [#5221 ](https://github.com/hyperf/hyperf/pull/5221 ) Fixed bug that `PGSqlSwooleConnection::affectingStatement()` can't work when the `sql` is wrong.
2022-11-26 19:47:54 +08:00
- [#5223 ](https://github.com/hyperf/hyperf/pull/5223 ) Fixed bug that `KeepaliveConnection::isTimeout()` can't work when using swow.
2022-12-10 20:14:47 +08:00
- [#5229 ](https://github.com/hyperf/hyperf/pull/5229 ) Fixed bug that proxy class will be generated failed when using parameters who allow null in constructor.
2022-12-22 16:16:49 +08:00
- [#5252 ](https://github.com/hyperf/hyperf/pull/5252 ) Fixed bug that generate rpc-client failed when the interface has parent interfaces.
2023-01-01 13:13:29 +08:00
- [#5268 ](https://github.com/hyperf/hyperf/pull/5268 ) Fixed bug that abstract methods will be written by `di` .