Symfony2 Расширение Twig - PullRequest
12 голосов
/ 13 мая 2011

У меня возникла проблема с расширением ветки.Мне нужно создать свой собственный фильтр (фильтр substr).Поэтому я решил использовать расширение ветки.

Я создал папку с именем «Расширение» в MyApp \ Bundle \ WebsiteBundle \ и файл: WebsiteExtension.php

namespace Bundle\WebsiteBundle\Extension;

class WebsiteExtension extends \Twig_Extension {

    public function getFilters() {
        return array(
            'substr'  => new \Twig_Filter_Method($this, 'substrFilter'),
        );
    }

    public function substrFilter($sentence, $start, $end) {
        return substr($sentence, $start, $end);
    }

    public function getName()
    {
        return 'website_extension';
    }
}

Затем в моем config.yml на /app / config

services:
    Website.twig.extension:
        class: MyApp\Bundle\WebsiteBundle\Extension\WebsiteExtension
        tags:
            - { name: twig.extension }

Но возникает ошибка:

"Fatal error: Class 'MyApp\Bundle\WebsiteBundle\Extension\WebsiteExtension' not found in .../appDevDebugProjectContainer.php on line 1391"

Это странно, потому что файл и класс существуют ... Я что-то пропустил, но что?

1 Ответ

6 голосов
/ 13 мая 2011

Замените это

namespace Bundle\WebsiteBundle\Extension;

На это

namespace MyApp\Bundle\WebsiteBundle\Extension;

А для чего вам нужен реж Bundle/WebsiteBundle?Разве Bundle недостаточно?

Вы можете увидеть здесь, как я это реализую https://github.com/azat/blog/blob/master/src/Blog/WebBundle/Twig/Extension/WebExtension.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...