Symfony2 bundle ikke registrerer

stemmer
5

Jeg opprettet en ny bunt med app / konsoll. Prøver å få en enkel Hallo skrives ut, slik at jeg kan gå videre. Jeg autoloaded navnerommet, registrert bunten, opprettet en side, men Symfony oppdager et unntak:

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?

Men jeg har allerede gjort det.

Loggen viser:

[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 

Jeg har også ryddet bufret dev mappen. Kan noen hjelpe meg å finne ut hva galt. Jeg har gjort dette før, det er første gang jeg har dette problemet. Noe å gjøre med bootstrap.php.cache

Takk! Setter pris på all hjelp.

KODE:

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;
}

Bunten viser også som en aktiv bunt i profil.

Publisert på 08/06/2011 klokken 19:22
kilden bruker
På andre språk...                            


2 svar

stemmer
5

Det ser ikke ut som et problem med bootstrap cache (linje 634 punkter til Kernel::getBundles()metoden, som er hva som er å kaste unntak), men bare i tilfelle, er det et skript som vil bygge den opp igjen: bin\build_bootstrap.php. Cache eksisterer for å redusere antallet require()s som Symfony trenger å gjøre for å laste kjerne Symfony klasser, og så lenge du bruker en av betaversjoner, er det lite sannsynlig at det er noe egentlig galt i det.

Det høres ut som det kan være en navne problem: din feil klager over mangelen på en PageBundle, men i henhold til kjernen, bunten burde bli kalt WebmuchPageBundle. Har du refererte det riktig i din routing_dev.yml? Et eksempel på ruting konfigurasjon ville være:

page:
    resource: "@WebmuchPageBundle/Controller/DefaultController.php"
    type:     annotation

Fordi du har bare definert som bundle for dev & testmiljøer, bør du bruke routing_dev.ymlog ikke routing.yml.

Deretter kontrollerer at bunten klassen heter riktig. Du bør ha en fil i roten på bundle (f.eks src/Webmuch/PageBundle/WebmuchPageBundle.php) med følgende innhold:

namespace Webmuch\PageBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;

class WebmuchPageBundle extends Bundle
{
}

Oh og selvsagt kontrollere at webserveren bruker kan lese bunt katalogen. Jeg tror som kaster en annen feil, men det er verdt å sjekke!

Svarte 14/06/2011 kl. 15:43
kilden bruker

stemmer
3

Jeg hadde denne feilen før. Sjekk dine rutinger! Sannsynligvis et sted du har linjer som dette:

webmuch_page_hello_world:
    pattern:   /hello
    defaults: { _controller: PageBundle:Default:hello }

Det "PageBundle" er ikke riktig. Du bør bruke "WebmuchPageBundle". Så bruk det slik: WebmuchPageBundle : Standard: hallo

Svarte 02/06/2013 kl. 19:12
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more