近期很多開發(fā)者升級(jí) workerman和webman-framework后會(huì)出現(xiàn)錯(cuò)誤
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鏡像導(dǎo)致,阿里云composer鏡像在幾年前就有問題了,它無法及時(shí)同步最新的composer包,導(dǎo)致更新的 webman-framework 是舊版本,最終導(dǎo)致以上報(bào)錯(cuò)。
解決方法,刪除阿里云composer鏡像代理,并指定版本,類似如下
composer config -g --unset repos.packagist
composer config --unset repos.packagist
composer require workerman/webman-framework ^1.6.6 -W
如果你的服務(wù)器無法連接composer官方源,可以嘗試使用騰訊的composer代理
composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/
我建議用 https://packagist.pages.dev/
國(guó)內(nèi)所有 composer 鏡像都不穩(wěn)定。這個(gè)鏡像我一直在用,非常穩(wěn)定,更新很快
阿里云官方已經(jīng)更新,大家可以嘗試一下:https://mp.weixin.qq.com/s/oTH7fi_Lcupq8RvMsi69lw