Maison >développement back-end >tutoriel php >Pourquoi Composer émet-il des avertissements de dépréciation du chargement automatique PSR-4 concernant les incohérences de chemin de classe ?
Dépréciation du chargement automatique de Composer PSR-4 : incompatibilité de chemin de classe
Lors de l'exécution de commandes composer telles que update et install, vous pouvez rencontrer un avis de dépréciation concernant une classe qui n'est pas conforme à la norme de chargement automatique PSR-4. Cela se produit généralement lorsqu'il existe une différence entre les classes. nom complet et le chemin de son fichier correspondant.
Cas du chemin
La cause la plus courante est une incompatibilité dans le cas des composants du chemin d'accès et du nom de la classe. Par exemple, "foo/bar/Baz.php" ne correspond pas à "FooBarBaz". Assurez-vous que la casse de chaque composant de chemin d'accès correspond à la casse de l'espace de noms qu'il représente, par exemple. "Foo/Bar/Baz.php" pour "FooBarBaz". Parfois, votre classe (ou espace de noms) peut s'appeler FooBar, mais son chemin d'accès au disque est "foo-bar". Cette situation déclenche également un avertissement. Vous devez renommer le fichier ou la classe (ou l'espace de noms).
Souvent, changer un chemin ou un fichier est plus facile que changer le nom d'une classe ou d'un espace de noms, car changer le nom d'une classe ou d'un espace de noms nécessite de refactoriser votre code pour qu'il corresponde au nouveau nom, alors que changer un chemin ne nécessite rien de refactoriser. contenu.
Espaces de noms imbriqués et déclarations manquantesSupposons que vous ayez :
et que la classe Dummy soit définie dans src/Buzz :
Le code ci-dessus fonctionne bien mais lancera des avertissements similaires à d'autres situations. L'approche correcte devrait être :
"autoload": { "psr-4": { "Fizz\Buzz\": "src/" } }
Vous devez apporter des modifications non seulement à la classe affectée, mais également à tout autre fichier qui utilise ou importe cette classe (par exemple, en déclarant maintenant utiliser FizzBuzzBuzzDummy ;) .
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!