Bundle Symfony2 ne pas enregistrer
J'ai créé un nouveau bundle avec app/console. Essayer d'obtenir un simple bonjour de l'impression, donc je peux me déplacer sur. J'ai chargé l'espace de noms, enregistré le bundle, a créé une page mais Symfony détecte une exception:
Bundle "PageBundle" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() function of your AppKernel.php file?
Mais je l'ai déjà fait.
Le journal indique:
[2011-06-08 23:41:56] request.CRITICAL: InvalidArgumentException: Bundle "PageBundle" does not exist or it is not enabled. Maybe you forgot to add it in the registerBundles() function of your AppKernel.php file? (uncaught exception) at /Applications/MAMP/htdocs/Symfony/app/bootstrap.php.cache line 634
J'ai aussi vidé le cache dev dossier. Quelqu'un peut-il m'aider à comprendre ce qui est mal. Je l'ai fait avant, c'est la première fois que je vais avoir ce problème. Quelque chose à voir avec bootstrap.php.cache
Merci! Reconnaissant de toute l'aide.
CODE:
public function registerBundles()
{
$bundles = array(
new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
new Symfony\Bundle\SecurityBundle\SecurityBundle(),
new Symfony\Bundle\TwigBundle\TwigBundle(),
new Symfony\Bundle\MonologBundle\MonologBundle(),
new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
new Symfony\Bundle\DoctrineBundle\DoctrineBundle(),
new Symfony\Bundle\AsseticBundle\AsseticBundle(),
new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
new JMS\SecurityExtraBundle\JMSSecurityExtraBundle(),
);
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new Webmuch\PageBundle\WebmuchPageBundle();
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
$bundles[] = new Symfony\Bundle\WebConfiguratorBundle\SymfonyWebConfiguratorBundle();
}
return $bundles;
}
Le bundle montre aussi comme un actif bundle dans le générateur de profils.
J'ai enlevé le cache et les fichiers d'amorçage. Puis reconstruit fichier bootstrap à partir de la console. Toujours la même erreur. Ce qui me manque?
Montrez-nous votre registerBundles() fonction.
Je l'ai ajouté à la question. Merci!
Êtes-vous à l'aide de /app_dev.php? Votre programme d'installation indique que vous voulez seulement le WebmuchPageBundle() chargé si vous êtes dans un dev ou de l'environnement de test... si vous mettez la nouvelle instanciation de classe dans le tableau ci-dessus, il vous en charge quel que soit votre environnement.
Je ne sais pas est-il un sens pour aujourd'hui, mais il semble qu'il y a un peu de mal chemin à la classe Bundle::
Montrez-nous votre registerBundles() fonction.
Je l'ai ajouté à la question. Merci!
Êtes-vous à l'aide de /app_dev.php? Votre programme d'installation indique que vous voulez seulement le WebmuchPageBundle() chargé si vous êtes dans un dev ou de l'environnement de test... si vous mettez la nouvelle instanciation de classe dans le tableau ci-dessus, il vous en charge quel que soit votre environnement.
Je ne sais pas est-il un sens pour aujourd'hui, mais il semble qu'il y a un peu de mal chemin à la classe Bundle::
$bundles[] = new Webmuch\PageBundle\WebmuchPageBundle();
Remplacer par celui-ci: $bundles[] = new Webmuch\PageBundle\PageBundle();
Supposons que devrait fonctionner 😉
OriginalL'auteur Aayush | 2011-06-08
Vous devez vous connecter pour publier un commentaire.
Il ne ressemble pas à un problème avec le bootstrap de cache (ligne 634 points à la
Kernel::getBundles()
méthode, qui est ce qui lance l'exception), mais juste au cas où, il y a un script qui va reconstruire:bin\build_bootstrap.php
. Le cache existe pour réduire le nombre derequire()
s que Symfony aurait besoin de faire pour charger le noyau de Symfony classes, et aussi longtemps que vous êtes à l'aide de l'un des bêtas, il est peu probable qu'il ya quelque chose de mal là-dedans.Il sonne comme il pourrait être un problème de nom: votre erreur se plaint de l'absence d'un PageBundle, mais en fonction de votre noyau, le faisceau doit être appelé WebmuchPageBundle. Avez-vous de le référencer correctement dans votre
routing_dev.yml
? Un exemple de configuration de routage serait:Parce que vous avez défini ce bundle pour le dev & environnements de test, vous devez utiliser
routing_dev.yml
et pasrouting.yml
.Ensuite, vérifiez que le module de classe est nommé correctement. Vous devez avoir un fichier à la racine de votre bundle (par exemple:
src/Webmuch/PageBundle/WebmuchPageBundle.php
) avec le contenu suivant:Oh, et évidemment vérifier que le serveur web de l'utilisateur peut lire dans votre répertoire du bundle. Je pense qui jette une autre erreur, mais il vaut la peine de vérifier!
OriginalL'auteur inanimatt
J'ai eu cette erreur avant. Vérifiez vos gammes!
Probablement quelque part il y a des lignes comme ceci:
Il "PageBundle" n'est pas droit. Vous devez utiliser "WebmuchPageBundle". Afin de l'utiliser comme ceci: WebmuchPageBundle:valeur par Défaut:bonjour
OriginalL'auteur Jumi