2011-11-22 32 views
2

我開始學習symfony2,並與供應商一起下載了symfony。但我不會對生產環境越來越運行symfony中,他將返回以下錯誤:Symfony2演示擴展未啓用

request.CRITICAL: Twig_Error_Runtime: The "demo" extension is not enabled in "AcmeDemoBundle: Demo: hello.html.twig" at line 9

我已經嘗試設置這樣的config.yml:

services: 
    twig.extension.acme.demo: 
     class: Acme\DemoBundle\Twig\Extension\DemoExtension 
     tags: 
      - {Name: twig.extension} 
     arguments: 
      - @ Twig.loader 

我試着在autoload.php中添加Acme bundle,但仍然沒有工作...仍然給出相同的錯誤。

只有這樣,才能使工作是調試設置爲true,在這條線:

$kernel = new AppKernel ('prod', false); 

,但我不希望這樣做在生產環境中,因爲它不會是好的。

任何人都可以幫助我嗎?

詩:對不起,我的英語

編輯:

在視圖具有這樣的代碼:{%組代碼=代碼(_self)%}

如果我改變零件代碼(_self)到別的東西,它的工作完美...

但是,爲什麼不用那個代碼運行?

+0

爲什麼會出現'@'和'Twig.loader'之間的空間? – greg0ire

回答

1

您可能遇到此問題,因爲您正在訪問產品版本,其中AcmeDemoBundle僅在開發環境中加載。

確保您正在訪問app_dev.php(開發環境),而不是使用.htaccessapp.php(生產環境)方法。

注:我假設你玩的代碼不是生產代碼。如果是這樣,你應該在你自己的包中加入所有環境中的樹枝擴展。

0

要注意語法:

services: 
    twig.extension.acme.demo: 
    class: Acme\DemoBundle\Twig\Extension\DemoExtension 
    arguments: 
     - @twig.loader 
    tags: 
     - { name: twig.extension }