2017-08-02 10 views
0

J'ai essayé de générer automatiquement un paquet dans Symfony3, en utilisant les instructions sur le site officiel: https://symfony.com/doc/current/bundles.html, mais a échoué. J'ai créé un répertoire \src\TestBundle dans mon projet avec un fichier TestBundle.php. J'ai étendu ma classe TestBundle à partir de Bundle et ajouté la ligne use Symfony\Component\HttpKernel\Bundle\Bundle; avant la déclaration de classe.Comment générer automatiquement un bundle dans Symfony3?

J'ai ajouté mon nouveau nom de groupe à la liste des groupes dans AppKernel.php.

Enfin, quand j'exécute $ php bin/console generate:bundle --namespace=TestBundle, je reçois cette erreur: PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\ClassNotFoundException: Attempted to load class "TestBundle" from namespace "TestBundle".

Toutes les idées pourquoi cela se produit?

Répondre

1

Si vous lancez cette commande:

php bin/console generate:bundle --namespace=TestBundle 

Symfony créer l'ensemble pour vous, vous n'avez pas besoin de créer un fichier et l'ajouter dans le fichier AppKernel. Essayez de supprimer tous vos fichiers et référence sur TestBundle et après avoir lancé seulement la commande, Symfony créera et enregistrera le Bundle pour vous.

Au lieu de cela, je veux créer manuellement le fichier que vous avez besoin de créer le répertoire \src\TestBundle et à l'intérieur du fichier TestBundle.php. Une fois que vous avez besoin de l'enregistrer dans votre AppKernel. Une fois que vous devez dire au compositeur pour charger ce paquet, si n'est pas déjà fait utiliser cette configuration pour autoload l'intérieur composer.json

"autoload": { 
    "psr-4": { 
     "": "src/" 
    }, 
    "classmap": [ 
     "app/AppKernel.php", 
     "app/AppCache.php" 
    ] 
}, 

Et enfin lancer la commande dans votre console:

composer dump-autoload