一位同事正在克隆一个仓库,当通过我们自己的插件运行bake命令时,出现以下错误:
PHP Fatal error: Declaration of OurPlugin\Command\ModelCommand::findBelongsTo(Cake\ORM\Table $model, array $associations): array must be compatible with Bake\Command\ModelCommand::findBelongsTo(Cake\ORM\Table $model, array $associations, ?Cake\Console\Arguments $args = null): array in C:\Users\colleague_name_here\Downloads\xampp_php81\htdocs\OurApp\plugins\OurPlugin\src\Command\ModelCommand.php on line 334
我现有的本地副本没有这个问题。我能够复制克隆和复制到另一个文件夹。供应商的变化来自哪里?
在composer.json
中:
"cakephp/bake": "^2.3",
vendor文件,其中函数定义似乎已更改
public function findBelongsTo(Table $model, array $associations, ?Arguments $args = null): array
当前插件:
public function findBelongsTo(Table $model, array $associations): array
在GitHub中,https://github.com/cakephp/bake/blob/2.3.0/src/Command/ModelCommand.php
public function findBelongsTo(Table $model, array $associations): array
1条答案
按热度按时间kninwzqo1#
第三个参数在bake 2.9.0中引入。也许你有一个锁定到2.8.0或更早版本的
composer.lock
,这是其他人都在使用的,也是你部署的,所以当你运行composer install
时,一切都很好--但是你的同事刚刚运行了一个composer update
,把他们带到了有问题的2.9.3版本。在调整代码之前,您可能最好更新您的
composer.json
,以专门锁定在最后一个已知的工作版本,然后即使是composer update
也不会超过这个版本:一旦你正确地更新了代码,将其更改为至少需要2.9.3,然后再次执行
composer update
: