У меня есть некоторые проблемы для реализации расширения ветки. Мне нужно создать собственный фильтр (фильтр 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 on / 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"
Странно, потому что файл и класс существуют … Я что-то пропустил, а что?
Заменить это
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