事情的經過是這樣的:
一、我閒着沒事更新了一下依賴
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
好像是什麼奇怪的地方衝突了
三、解決辦法
經一位前輩指點,說這個問題他也遇到過,官網上有解決辦法。
截圖如下
命令如下
rm -rf vendor
rm -rf composer.lock
composer require "symfony/event-dispatcher:^4.3"
按順序執行,衝突解決了,啓動 php bin/hyperf.php start 成功,又能愉快的玩耍了。