PHP Fatal error: Declaration of Hyperf\Framework\SymfonyEventDispatcher::dispatch($event) must be c

 事情的經過是這樣的:

 一、我閒着沒事更新了一下依賴

composer update

 批量更新,控制檯大概是這樣的,更新了一大堆,這下尷尬了

bash-4.4# composer update
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 28 updates, 1 removal
  - Removing symfony/polyfill-php73 (v1.15.0)
  - Updating composer/package-versions-deprecated (1.4.2 => 1.8.0): Downloading (100%)
  - Updating hyperf/utils (v1.1.26 => v1.1.27): Downloading (100%)
  - Updating hyperf/framework (v1.1.26 => v1.1.27): Downloading (100%)
  - Updating phpdocumentor/reflection-common (2.0.0 => 2.1.0): Downloading (100%)
  - Updating hyperf/rpc-client (v1.1.26 => v1.1.27): Downloading (100%)
  - Updating symfony/finder (v4.4.7 => v4.4.8): Downloading (100%)
  - Installing symfony/contracts (v1.1.0): Downloading (100%)
  - Downgrading symfony/console (v4.4.7 => v4.2.12): Downloading (100%)
  - Updating hyperf/devtool (v1.1.26 => v1.1.27): Downloading (100%)
  - Updating symfony/debug (v4.4.7 => v4.4.8): Loading from cache
  - Updating symfony/translation (v5.0.7 => v5.0.8): Downloading (100%)
  - Updating illuminate/contracts (v6.18.10 => v6.18.11): Loading from cache
  - Updating illuminate/support (v6.18.10 => v6.18.11): Loading from cache
  - Updating illuminate/filesystem (v6.18.10 => v6.18.11): Loading from cache
  - Updating illuminate/container (v6.18.10 => v6.18.11): Loading from cache
  - Updating illuminate/events (v6.18.10 => v6.18.11): Loading from cache
  - Updating illuminate/view (v6.18.10 => v6.18.11): Loading from cache
  - Updating symfony/event-dispatcher-contracts (v1.1.7 => v2.0.1): Downloading (100%)
  - Updating symfony/event-dispatcher (v4.4.7 => v5.0.8): Downloading (100%)
  - Updating symfony/options-resolver (v5.0.7 => v5.0.8): Downloading (100%)
  - Updating symfony/process (v5.0.7 => v5.0.8): Downloading (100%)
  - Updating symfony/stopwatch (v5.0.7 => v5.0.8): Downloading (100%)
  - Updating symfony/inflector (v5.0.7 => v5.0.8): Loading from cache
  - Updating symfony/property-access (v4.4.7 => v4.4.8): Downloading (100%)
  - Updating symfony/serializer (v4.4.7 => v4.4.8): Downloading (100%)
  - Updating jean85/pretty-package-versions (1.2 => 1.3.0): Downloading (100%)
  - Updating symfony/filesystem (v5.0.7 => v5.0.8): Downloading (100%)
  - Updating symfony/config (v5.0.7 => v5.0.8): Downloading (100%)
  - Updating symfony/dependency-injection (v5.0.7 => v5.0.8): Downloading (100%)
symfony/contracts suggests installing psr/cache (When using the Cache contracts)
symfony/contracts suggests installing symfony/cache-contracts-implementation
symfony/contracts suggests installing symfony/http-client-contracts-implementation
symfony/contracts suggests installing symfony/service-contracts-implementation
symfony/contracts suggests installing symfony/translation-contracts-implementation

二、然後啓動時,報錯了

 啓動命令

php bin/hyperf.php start

 報錯如下

PHP Fatal error:  Declaration of Hyperf\Framework\SymfonyEventDispatcher::dispatch($event) must be compatible with 
Symfony\Contracts\EventDispatcher\EventDispatcherInterface::dispatch(object $event, ?string $eventName = NULL): 
object in /hyperf-skeleton/vendor/hyperf/framework/src/SymfonyEventDispatcher.php on line 23

Fatal error: Declaration of Hyperf\Framework\SymfonyEventDispatcher::dispatch($event) must be compatible with 
Symfony\Contracts\EventDispatcher\EventDispatcherInterface::dispatch(object $event, ?string $eventName = NULL): 
object in /hyperf-skeleton/vendor/hyperf/framework/src/SymfonyEventDispatcher.php on line 23

 好像是什麼奇怪的地方衝突了

三、解決辦法

 經一位前輩指點,說這個問題他也遇到過,官網上有解決辦法。

hyperf官網 常見問題

截圖如下

命令如下

rm -rf vendor
rm -rf composer.lock
composer require "symfony/event-dispatcher:^4.3"

按順序執行,衝突解決了,啓動  php bin/hyperf.php start 成功,又能愉快的玩耍了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章