Maison  >  Article  >  développement back-end  >  Symfony 3.3 ClassNotFoundException après la création du bundle : comment résoudre le problème de chargement automatique ?

Symfony 3.3 ClassNotFoundException après la création du bundle : comment résoudre le problème de chargement automatique ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-24 17:57:12904parcourir

Symfony 3.3 ClassNotFoundException After Bundle Creation: How to Fix the Autoload Issue?

Symfony 3 : Dépannage de ClassNotFoundException après la création d'un bundle

La création d'un nouveau bundle dans Symfony 3.3 peut parfois conduire à une erreur "ClassNotFoundException". Ce problème déroutant se produit après avoir effectué les étapes suivantes :

  1. Générer un nouveau projet à l'aide de "symfony new ArtProject"
  2. Créer un nouveau bundle à l'aide de "php app/console generate:bundle (Paul /ArtBundle, yml, src/)"

Lors de la tentative d'accès "127.0.0.1:8000", le message d'erreur s'affiche.

Comprendre le problème

L'erreur se produit car la commande "generate:bundle" ne parvient pas à mettre à jour la section "autoload" de " composer.json" lorsqu'un nouvel espace de noms est introduit. Cela entraîne l'échec du chargement correct de la classe du bundle créé.

Résolution

Pour résoudre le problème, modifiez manuellement "composer.json" et ajoutez la ligne suivante :

"psr-4": {
    "AppBundle\": "src/AppBundle",
    "Paul\": "src/Paul"
}

Ensuite, exécutez "composer dumpautoload" et redémarrez le serveur.

Arrière-plan

Dans Symfony 3.2, la configuration "autoload" recherchait automatiquement toutes les classes PHP dans le répertoire "src/". Cependant, dans Symfony 3.3, cette configuration a changé pour inclure explicitement les espaces de noms. Par conséquent, la commande "generate:bundle" ne met plus à jour la section "autoload", ce qui entraîne l'erreur de classe introuvable.

Conclusion

Ce problème peut être facilement résolu en mettant à jour manuellement le fichier « composer.json » et exécutez « composer dumpautoload ». N'oubliez pas que ce problème est dû au changement de configuration "autoload" dans Symfony 3.3.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn