Heim > Backend-Entwicklung > PHP-Tutorial > Warum gibt Composer Warnungen zum Verfall des automatischen Ladens von PSR-4 wegen nicht übereinstimmender Klassenpfade aus?

Warum gibt Composer Warnungen zum Verfall des automatischen Ladens von PSR-4 wegen nicht übereinstimmender Klassenpfade aus?

Patricia Arquette
Freigeben: 2024-11-29 00:58:10
Original
471 Leute haben es durchsucht

Why is Composer issuing PSR-4 autoloading deprecation warnings about class path mismatches?

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 Deklarationen

Angenommen, 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/"
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage