Php 什么';这是“什么?”;ObjectManager和EntityManagerInterface之间的兼容性;在Symfony更新后的原则?
我在Symfony项目中尝试更新(composer更新)后出错 我寻找解决方案,发现有必要修改实体和构造函数中的用法和类型提示。。我已经做到了 然后,我重新启动了一个更新,但出现了另一个错误,更新没有完全完成 结果:我的网站关闭,显示兼容性错误 看这个: 编译错误:App\DataFixtures\AppFixtures::load(条令\ORM\EntityManagerInterface$manager)的声明必须与条令\Common\DataFixtures\FixtureInterface::load(条令\Common\Persistence\ObjectManager$manager)兼容 在AppFixtures.php第8行中` 我不明白,什么是兼容性 我不知道如何发布我的代码。。(控制器、YAML、实体…)但我得到了尝试。 在bug出现之前,我的项目在GitHub上,也许它会有用(如果您需要…) 这里是my AppFixtures.php:Php 什么';这是“什么?”;ObjectManager和EntityManagerInterface之间的兼容性;在Symfony更新后的原则?,php,symfony,orm,doctrine,composer-php,Php,Symfony,Orm,Doctrine,Composer Php,我在Symfony项目中尝试更新(composer更新)后出错 我寻找解决方案,发现有必要修改实体和构造函数中的用法和类型提示。。我已经做到了 然后,我重新启动了一个更新,但出现了另一个错误,更新没有完全完成 结果:我的网站关闭,显示兼容性错误 看这个: 编译错误:App\DataFixtures\AppFixtures::load(条令\ORM\EntityManagerInterface$manager)的声明必须与条令\Common\DataFixtures\FixtureInterfac
在您的基类Fixture
$manager实例的条令\Common\Persistence\ObjectManager
,因此您需要将EntityManagerface
更改为ObjectManager
。您不能在children类中重写typehint。我想现在用symfony 4.3更正lhor kostrov,
您需要从Doctrine\Persistence\ObjectManager
而不是从Doctrine\Common\Persistence\ObjectManager
你的应用程序不会做任何事情。您可以删除它。只有在测试环境中才需要夹具。您可以让compeser安装--nodev(类似的东西),以防止开发libs安装在您的生产服务器中。而且,如果hoy不使用固定装置,您可以移除该包。Composer移除捆绑设备。(类似的东西)可能您会发现其他错误。不要在生产环境中更新composer。您可以编辑composer.json文件,然后返回symfony yo您以前的版本,以获得快速完整的响应!!我使用固定装置来模拟“属性”(房屋出售),但我可以移除它。。我相信,如果我回到以前的版本,那就好了!感谢您快速完整的回复!!好的,如果我要在基类[Fixture]中将[EntityManagerInterface]更改为[ObjectManager]?它跑了吗?