近期很多開發(fā)者升級 workerman和webman-framework后會出現(xiàn)錯誤
PHP Fatal error: Declaration of Webman\Http\Request::file($name = null) must be compatible with Workerman\Protocols\Http\Request::file(?string $name = null): mixed in /opt/www/vendor/workerman/webman-framework/src/Http/Request.php on line 119
大部分原因是使用了阿里云composer鏡像導致,阿里云composer鏡像在幾年前就有問題了,它無法及時同步最新的composer包,導致更新的 webman-framework 是舊版本,最終導致以上報錯。
解決方法,刪除阿里云composer鏡像代理,并指定版本,類似如下
composer config -g --unset repos.packagist
composer config --unset repos.packagist
composer require workerman/webman-framework ^1.6.6 -W
如果你的服務器無法連接composer官方源,可以嘗試使用騰訊的composer代理
composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
我建議用 https://packagist.pages.dev/
國內(nèi)所有 composer 鏡像都不穩(wěn)定。這個鏡像我一直在用,非常穩(wěn)定,更新很快