cakephp 供应商烘焙插件函数定义更改

ipakzgxi  于 2023-05-17  发布在  PHP
关注(0)|答案(1)|浏览(137)

一位同事正在克隆一个仓库,当通过我们自己的插件运行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
kninwzqo

kninwzqo1#

第三个参数在bake 2.9.0中引入。也许你有一个锁定到2.8.0或更早版本的composer.lock,这是其他人都在使用的,也是你部署的,所以当你运行composer install时,一切都很好--但是你的同事刚刚运行了一个composer update,把他们带到了有问题的2.9.3版本。
在调整代码之前,您可能最好更新您的composer.json,以专门锁定在最后一个已知的工作版本,然后即使是composer update也不会超过这个版本:

"cakephp/bake": "2.8.3"

一旦你正确地更新了代码,将其更改为至少需要2.9.3,然后再次执行composer update

"cakephp/bake": "^2.9.3"

相关问题