Das Erstellen eines neuen Bundles in Symfony 3.3 kann manchmal zu einem „ClassNotFoundException“-Fehler führen. Dieses rätselhafte Problem tritt auf, nachdem die folgenden Schritte ausgeführt wurden:
Beim Zugriffsversuch „127.0.0.1:8000“, die Fehlermeldung wird angezeigt.
Der Fehler tritt auf, weil der Befehl „generate:bundle“ den Abschnitt „autoload“ von „ nicht aktualisieren kann. „composer.json“, wenn ein neuer Namespace eingeführt wird. Dies führt dazu, dass die Klasse des erstellten Bundles nicht ordnungsgemäß geladen werden kann.
Um das Problem zu beheben, bearbeiten Sie „composer.json“ manuell und fügen Sie die folgende Zeile hinzu:
"psr-4": { "AppBundle\": "src/AppBundle", "Paul\": "src/Paul" }
Als nächstes führen Sie „composer dumpautoload“ aus und starten den Server.
In Symfony 3.2 suchte die „Autoload“-Konfiguration automatisch nach allen PHP-Klassen im Verzeichnis „src/“. In Symfony 3.3 wurde diese Konfiguration jedoch geändert und schließt nun explizit Namespaces ein. Infolgedessen aktualisiert der Befehl „generate:bundle“ den Abschnitt „autoload“ nicht mehr, was zum Fehler „Klasse nicht gefunden“ führt.
Dieses Problem kann durch manuelles Aktualisieren leicht behoben werden Öffnen Sie die Datei „composer.json“ und führen Sie „composer dumpautoload“ aus. Denken Sie daran, dass dieses Problem auf die Änderung der „Autoload“-Konfiguration in Symfony 3.3 zurückzuführen ist.
Das obige ist der detaillierte Inhalt vonSymfony 3.3 ClassNotFoundException nach der Bundle-Erstellung: Wie behebt man das Autoload-Problem?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!