2011-06-08 8 views
5

पंजीकरण नहीं कर रहा है मैंने ऐप/कंसोल के साथ एक नया बंडल बनाया है। एक साधारण हैलो मुद्रित करने की कोशिश कर रहा है, इसलिए मैं आगे बढ़ सकता हूं। मैं नाम स्थान autoloaded, बंडल पंजीकृत, एक पेज बनाया है, लेकिन Symfony एक अपवाद का पता लगाता है:सिम्फनी 2 बंडल

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? 

लेकिन मैं पहले से ही है कि किया है।

लॉग दिखाता है:

[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 

मैं भी कैश की गई देव फ़ोल्डर को मंजूरी दे दी। क्या कोई मुझे गलत समझने में मदद कर सकता है। मैंने पहले यह किया है, यह पहली बार है जब मुझे यह समस्या हो रही है। Bootstrap.php.cache

धन्यवाद के साथ कुछ करने के लिए धन्यवाद! सभी मदद की सराहना करते हैं।

कोड:

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

बंडल भी प्रोफाइलर में एक सक्रिय बंडल के रूप में दिखाता है।

+0

मैंने कैश और बूटस्ट्रैप फ़ाइलों को हटा दिया। फिर कंसोल से बूटस्ट्रैप फ़ाइल का पुनर्निर्माण करें। अभी भी वही त्रुटि। मैं क्या खो रहा हूँ? – Aayush

+2

हमें अपना रजिस्टर बंडल() फ़ंक्शन दिखाएं। –

+0

मैंने इसे प्रश्न में जोड़ा है। धन्यवाद! – Aayush

उत्तर

5

यह बूटस्ट्रैप कैश (लाइन 634 अंक Kernel::getBundles() विधि, जो अपवाद फेंक रहा है) के साथ एक समस्या की तरह दिखता नहीं है, लेकिन बस एक ऐसी स्क्रिप्ट है जो इसे पुनर्निर्माण करेगी: bin\build_bootstrap.php। कैश require() की संख्या को कम करने के लिए मौजूद है कि सिम्फनी को कोर सिम्फनी कक्षाओं को लोड करने की आवश्यकता होगी, और जब तक आप बीटा में से किसी एक का उपयोग कर रहे हों, तो यह संभावना नहीं है कि वहां वास्तव में कुछ भी गलत है।

ऐसा लगता है कि यह नामकरण समस्या हो सकती है: आपकी त्रुटि पृष्ठबंडल की कमी के बारे में शिकायत करती है, लेकिन आपके कर्नेल के अनुसार, बंडल को WebmuchPageBundle कहा जाना चाहिए। क्या आपने इसे अपने routing_dev.yml में ठीक से संदर्भित किया है? एक उदाहरण मार्ग config होगा:

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

क्योंकि आप केवल परिभाषित किया है देव & परीक्षण वातावरण के लिए है कि बंडल, आप routing_dev.yml और नहीं routing.yml उपयोग करना चाहिए।

अगला, जांचें कि बंडल वर्ग का नाम सही ढंग से है। आप नीचे दिए गए सामग्री के साथ अपने बंडल (जैसे src/Webmuch/PageBundle/WebmuchPageBundle.php) की जड़ में एक फ़ाइल होना चाहिए:

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

class WebmuchPageBundle extends Bundle 
{ 
} 

ओह और स्पष्ट रूप से देखने के वेब सर्वर के उपयोगकर्ता अपने बंडल निर्देशिका पढ़ सकते हैं। मैं सोचता हूं जो एक अलग त्रुटि फेंकता है, लेकिन यह जांच के लायक है!

3

मुझे यह त्रुटि पहले थी। अपने मार्गों की जांच करें!

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

वहाँ "PageBundle" नहीं सही है: शायद कहीं न कहीं आप इस तरह लाइनों की है। आपको "WebmuchPageBundle" का उपयोग करना चाहिए। तो इसे इस तरह उपयोग करें: वेबमचपेजबंडल: डिफ़ॉल्ट: हैलो