0

問題が発生していますが、その理由が本当にわかりません!

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 にアップグレードした後に発生しました。

4

1 に答える 1

1

ここにあります!

お騒がせして申し訳ありませんが、私は自分の間違いを発見しました。

LoaderInterface $loader で行われる型ヒントは、

Symfony\Component\DependencyInjection\Loader\LoaderInterface;

そして私は

Symfony\Components\DependencyInjection\Loader\LoaderInterface

問題はhttp://github.com/symfony/symfony/commit/bf82cf42dda099f8c0b6648b7dbd8e8ea7397c1e以降に発生しました

残念なことに、私はこれを認識していました (symfony-devs リストで発表されています)。

問題は、存在しないクラスを使用しようとしても、PHP インタープリターが警告しないことです。

または多分私は何かを逃した?

于 2010-08-27T08:05:31.710 に答える