Ich verwende Symfony 2.3 Framework und der Autoloader behauptet, die Datei gefunden zu haben, aber keine Klasse:
%Vor%Die Datei, auf die sie sich bezieht, wird unten angezeigt:
%Vor%Wie auch immer, einige Details, die helfen könnten, waren, dass ich Doctrine kürzlich installiert und die Befehle ausgeführt habe ...
%Vor%Nach diesen Befehlen hat symfony nicht mehr funktioniert. Ich weiß nicht, ob das ein seltsamer Bug ist oder so. Wenn Sie mehr Informationen benötigen, kann ich posten. Danke für jede Hilfe.
Dies ist jetzt ein wenig alt, aber falls jemand durch die Suche hierher kommt: Dies ist zweifellos ein Cache-Problem. Löschen Sie manuell den Inhalt von app / cache / dev und app / cache / prod, und alles sollte gelöst werden.
Wenn jemand anderes dieses Problem hat und nicht durch Löschen des Caches verschwindet, dann empfehle ich, den gesamten Ordner mit den Composer-Abhängigkeiten zu entfernen und composer install
erneut auszuführen.
Es hat für mich funktioniert :).
Ich denke, es gibt einen Fehler in Symfony2. Sie haben vor kurzem auf eine neue Version (2.3.1) von Symfony aktualisiert, von der ich denke, dass sie etwas kaputt gemacht haben muss. Wie auch immer, ich musste // die neue Zeile Sensio \ Bundle \ FrameworkExtraBundle \ SensioFrameworkExtraBundle () in der Datei AppKernel.php auskommentieren, um den Fehler zu beheben.
Stellen Sie sicher, dass Ihr Namespace in der Klasse definiert ist, die Sie verwenden möchten. Zum Beispiel hatte ich in meinem Controller:
%Vor%Dies war der korrekte Pfad zu meiner AmazonProductAPI-Klasse, aber das System erkannte es erst, als ich der Klasse den richtigen Namespace hinzugefügt hatte:
%Vor% Ich habe dieses Problem gelöst, indem ich ein zusätzliches \
vor Doctrine
wie folgt entfernt habe:
Ich habe das Dienstprogramm generate:doctrine:entity
verwendet, um sowohl die Entity als auch die orm.xml
-Datei zu erstellen. Dieses Dienstprogramm scheint einen Fehler zu haben und fügt wie oben in der XML-Datei ein zusätzliches \
hinzu. Das Entfernen dieses zusätzlichen Backslash \
hat mein Problem gelöst. Überprüfen Sie daher Ihre orm.xml
-Datei, nachdem Sie den Befehl php app/console doctrine:generate:entity
verwendet haben, um sicherzustellen, dass im Pfad keine zusätzlichen Backslashes vorhanden sind. Dieser Fehler wurde möglicherweise in den späteren Versionen von Symfony behoben, aber nur für den Fall, dass Sie diesen Fehler erhalten, könnte dies der Grund sein.
In meinem Fall war es ein Tippfehler im Klassennamen. Ich habe einen Fehler in AssetsCommand.php
erhalten, als der Klassenname AsssetsCommand
Stellen Sie sicher, dass der Basisname der Klassendatei mit dem Klassennamen identisch ist.
Fühlte mich so an, als ob jede Antwort, die ich las, es lösen würde, aber nicht. In meinem Fall war es letztendlich OpCache. Ich habe es während der Entwicklung aktiviert. Die Lösung besteht darin, entweder PHP-FPM oder Httpd (bei Verwendung von mod_php) jedes Mal neu zu starten, wenn eine Änderung an der Codebasis vorgenommen wird oder OpCache vollständig deaktiviert wird.
Es passiert mir, wenn ich einen falschen Namensraum deklariere.
Beispiel: Namespace AppBundle \ Controller ;
, aber die Klasse befindet sich in diesem Pfad: AppBundle \ RestController
Wenn dieser Fehler auftritt, sollten Sie Ihre Dateinamen auf Tippfehler überprüfen. In meinem Fall jedoch hieß es "Die Datei wurde gefunden, aber die Klasse war nicht drin, der Klassenname oder Namespace hat wahrscheinlich einen Tippfehler ", in der Tat war der Dateiname nicht korrekt (" Von "anstelle von" Form ")
Tags und Links php symfony doctrine2 autoloader