Question

J'encoutering un problème, mais ne comprends vraiment pas pourquoi!

Je reçois cette erreur lors du lancement Symfony (via le contrôleur frontal ou CLI)

PHP Fatal error:  Declaration of ECommerceKernel::registerContainerConfiguration() must be compatible with that of Symfony\Framework\Kernel::registerContainerConfiguration()

Le problème est la substitution de la méthode de registerContainerConfiguration.

de signature est défini dans Symfony \ Framework \ noyau:

abstract public function registerContainerConfiguration(LoaderInterface $loader);

mes regards méthode comme celle-ci écrasés:

// 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;
}

Ma question: Qu'est-ce qui se passe vraiment ici? Je ne comprends vraiment pas l'erreur parce que les signatures de méthode sont exactement les mêmes.

Ceci est arrivé après un srv / vendor / symfony mise à jour vers symfony / symfony de la dernière github.

Était-ce utile?

La solution

Ici, je l'ai!

Désolé pour le bruit, mais je viens de découvrir mon erreur.

Le type hinting fait sur LoaderInterface chargeur $ doit être

Symfony\Component\DependencyInjection\Loader\LoaderInterface;

et je travaillais avec un

Symfony\Components\DependencyInjection\Loader\LoaderInterface

Le problème est apparu depuis http://github.com/symfony/symfony/commit/bf82cf42dda099f8c0b6648b7dbd8e8ea7397c1e

Honte à moi, parce que j'étais au courant de ce (il a été annoncé int la liste de symfony-devs).

le problème est que PHP interpretr ne vous avertit pas lorsque vous essayez d'utiliser une classe inexisiting.

Ou peut-être que je raté quelque chose?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top