Frage

Ich bin encoutering ein Problem, aber wirklich nicht verstehen, warum!

Ich bekomme diese Fehlermeldung, wenn Symfony starten (über Front-Controller oder CLI)

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

Das Problem ist die Überschreibung der registerContainerConfiguration Methode.

Es Unterschrift in Symfony \ Framework \ Kernel definiert ist:

abstract public function registerContainerConfiguration(LoaderInterface $loader);

meine überschrieben Methode sieht wie folgt aus:

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

Meine Frage: Was wirklich geschieht hier? Ich kann wirklich nicht den Fehler verstehen, weil die Methodensignaturen sind genau das gleiche.

Dies geschah nach einem srv / Verkäufer / symfony Upgrade auf die neueste Github des symfony / symfony.

War es hilfreich?

Lösung

Hier habe ich es!

Sorry für den Lärm, aber ich meinen Fehler nur entdeckt.

Der Typ auf LoaderInterface $ loader gemacht Hintings muss ein

sein
Symfony\Component\DependencyInjection\Loader\LoaderInterface;

und ich wurde mit einem

Symfony\Components\DependencyInjection\Loader\LoaderInterface

Das Problem tritt seit http://github.com/symfony/symfony/commit/bf82cf42dda099f8c0b6648b7dbd8e8ea7397c1e

Schande über mich, weil ich wusste das (es int symfony-Devs Liste wurde bekannt gegeben).

das Problem ist, dass PHP interpretr nicht Sie warnen, wenn Sie versuchen, eine inexisiting Klasse zu verwenden.

Oder vielleicht habe ich etwas verpasst?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top