サービス コンテナーを使用して Twig 拡張機能を作成しようとしていますが、「ClassNotFoundException」が発生します。
ここで例外:
ClassNotFoundException: Attempted to load class "TwigExtension" from the global namespace in \path\to\symfony-simple-blog\src\YagoQuinoy\SimpleBlogBundle\Twig\BlogExtension.php 行 11. このクラスの use ステートメントを忘れましたか? おそらく、次のいずれかの use ステートメントを追加する必要があります: Symfony\Bundle\TwigBundle\DependencyInjection\TwigExtension
ここにコード:
小枝拡張:
namespace YagoQuinoy\SimpleBlogBundle\Twig;
/**
* Description of BlogExtension
*
* @author yagoquinoy@gmail.com
*/
class BlogExtension extends \TwigExtension
{
public function getFilters() {
return array(new \Twig_SimpleFilter('timeAgo', array($this, 'timeAgoFilter')));
}
public function timeAgoFilter() {
return 'yolo!';
}
public function getName() {
return 'blog_extension';
}
}
service.yml
services:
yago_quinoy_simple_blog.twig.blog_extension:
class: YagoQuinoy\SimpleBlogBundle\Twig\BlogExtension
tags:
- { name: twig.extension }
編集:解決しました。
TwigExtension ではなくよりスマートな Twig_Extension、symfony.com/doc/current/cookbook/templating/twig_extension.html