我遇到了一个问题,但真的不明白为什么!
启动 Symfony 时出现此错误(通过前端控制器或 CLI)
PHP Fatal error: Declaration of ECommerceKernel::registerContainerConfiguration() must be compatible with that of Symfony\Framework\Kernel::registerContainerConfiguration()
问题是 registerContainerConfiguration 方法的覆盖。
它的签名在 Symfony\Framework\Kernel 中定义:
abstract public function registerContainerConfiguration(LoaderInterface $loader);
我覆盖的方法如下所示:
// in ECommerceKernel
public function registerContainerConfiguration(LoaderInterface $loader)
{
$return = $loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
$em = $this->getContainer()->getDoctrine_Orm_EntityManagerService();
$dm = $this->getContainer()->getDoctrine_Odm_Mongodb_DocumentManagerService();
$eventManager = $em->getEventManager();
$eventManager->addEventListener(
array(\Doctrine\ORM\Events::postLoad), new ECommerceEventSubscriber($dm)
);
return $return;
}
我的问题:这里到底发生了什么?我真的无法理解错误,因为方法签名完全相同。
这发生在 srv/vendor/symfony 升级到最新的 github 的 symfony/symfony 之后。