事情的经过是这样的:
一、我闲着没事更新了一下依赖
1 | composer update |
批量更新,控制台大概是这样的,更新了一大堆,这下尴尬了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 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 |
二、然后启动时,报错了
启动命令
1 | php bin/hyperf.php start |
报错如下
1 2 3 4 5 6 7 | 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官网 常见问题
截图如下

命令如下
1 2 3 | rm -rf vendor rm -rf composer.lock composer require "symfony/event-dispatcher:^4.3" |
按顺序执行,冲突解决了,启动 php bin/hyperf.php start 成功,又能愉快的玩耍了。