Veraltung des automatischen Ladens von Composer PSR-4: Nichtübereinstimmung des Klassenpfads
Beim Ausführen von Composer-Befehlen wie „Update“ und „Install“ wird möglicherweise ein Veraltungshinweis angezeigt eine Klasse, die nicht dem PSR-4-Autoloading-Standard entspricht. Dies tritt normalerweise auf, wenn eine Diskrepanz zwischen den Klassen besteht vollständig qualifizierter Name und der Pfad der entsprechenden Datei.
Pfadfall
Die häufigste Ursache ist eine Nichtübereinstimmung zwischen den Pfadnamenkomponenten und dem Klassennamen. Beispielsweise entspricht „foo/bar/Baz.php“ nicht „FooBarBaz“. Stellen Sie sicher, dass die Groß-/Kleinschreibung jeder Pfadnamenkomponente mit der Groß-/Kleinschreibung des von ihr repräsentierten Namespace übereinstimmt, z „Foo/Bar/Baz.php“ für „FooBarBaz“-Bedingung. Manchmal heißt Ihre Klasse (oder Ihr Namespace) möglicherweise FooBar, aber ihr Festplattenpfad ist „foo-bar“. Auch diese Situation löst eine Warnung aus. Sie müssen die Datei oder Klasse (oder den Namespace) umbenennen.
Oft ist das Ändern eines Pfads oder einer Datei einfacher als das Ändern eines Klassen- oder Namespace-Namens, da das Ändern eines Klassen- oder Namespace-Namens eine Umgestaltung Ihres Codes erfordert, damit dieser mit dem neuen Namen übereinstimmt, während das Ändern eines Pfads keine Umgestaltung erfordert Inhalt.
Verschachtelte Namespaces und fehlende DeklarationenAngenommen, Sie haben:
und die Klasse Dummy ist in src/Buzz definiert:
Der obige Code funktioniert einwandfrei, löst jedoch ähnliche Warnungen wie in anderen Situationen aus. Der richtige Ansatz sollte sein:
"autoload": { "psr-4": { "Fizz\Buzz\": "src/" } }
Sie müssen nicht nur Änderungen an der betroffenen Klasse vornehmen, sondern auch an allen anderen Dateien, die diese Klasse verwenden oder importieren (z. B. indem Sie jetzt die Verwendung von FizzBuzzBuzzDummy deklarieren;) .
Das obige ist der detaillierte Inhalt vonWarum gibt Composer Warnungen zum Verfall des automatischen Ladens von PSR-4 wegen nicht übereinstimmender Klassenpfade aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!