0

サービス コンテナーを使用して Twig 拡張機能を作成しようとしていますが、「ClassNotFoundException」が発生します。

ここで例外:

ClassNotFoundException: Attempted to load class "TwigExtension" from the global namespace in \path\to\symfony-simple-blog\src\YagoQuinoy\SimpleBlogBu​​ndle\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

4

1 に答える 1