Symfony 2 Twig 扩展

发布于 2025-01-07 14:54:06 字数 1201 浏览 0 评论 0原文

我想添加我自己的 twig 功能并在 Symfony 2 中添加新的 twig 扩展。

为此,我创建了这些文件夹: src/Ptracker/TasksBundle/Twig 和 src/Ptracker/TasksBundle/Twig/Extension 并将文件 myTwigExtension.php 放入其内容如下:

<?php
namespace Ptracker\TasksBundle\Twig\Extension;

class MyTwigExtension extends \Twig_Extension {

public function getFilters() {
    return array(
        'var_dump'   => new \Twig_Filter_Function('var_dump'),
        'linkable'  => new \Twig_Filter_Method($this, 'linkable'),
    );
}

public function linkable($sentence, $expr) {
    return 'it works!!';
}

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

}
?>

我还添加了一些代码src/Ptracker/TasksBundle/Resources/config/services.yml :

services:
   ptracker.twig.extension:
      class: Ptracker\TasksBundle\Twig\Extension\MyTwigExtension
      tags:
        -  { name: twig.extension }

重点是我总是遇到同样的致命错误:

Fatal error: Class 'Ptracker\TasksBundle\Twig\Extension\MyTwigExtension' not found in /home/renat/www/ptracker/app/cache/dev/appDevDebugProjectContainer.php on line 1092 

我做错了什么?我花了好几个时间来解决这个问题,尝试将扩展文件放在不同的文件夹中,更改命名空间..没有任何帮助。

请帮我 :)

I want to add my own twig functionality and to add new twig extension in Symfony 2.

To do that i created these folders: src/Ptracker/TasksBundle/Twig and src/Ptracker/TasksBundle/Twig/Extension and put file myTwigExtension.php in it with this content:

<?php
namespace Ptracker\TasksBundle\Twig\Extension;

class MyTwigExtension extends \Twig_Extension {

public function getFilters() {
    return array(
        'var_dump'   => new \Twig_Filter_Function('var_dump'),
        'linkable'  => new \Twig_Filter_Method($this, 'linkable'),
    );
}

public function linkable($sentence, $expr) {
    return 'it works!!';
}

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

}
?>

Also i added some code to src/Ptracker/TasksBundle/Resources/config/services.yml :

services:
   ptracker.twig.extension:
      class: Ptracker\TasksBundle\Twig\Extension\MyTwigExtension
      tags:
        -  { name: twig.extension }

The point is that i ALWAYS get the same fatal error:

Fatal error: Class 'Ptracker\TasksBundle\Twig\Extension\MyTwigExtension' not found in /home/renat/www/ptracker/app/cache/dev/appDevDebugProjectContainer.php on line 1092 

What am i doing wrong? I've spent several ours to fix this problem, tried to put extension file in different folders, changed namespace.. nothing helps.

Please help me :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一袭白衣梦中忆 2025-01-14 14:54:06

文件名在 Linux 上区分大小写,并且找不到任何内容,因为它尝试加载 ../MyTwigExtension.php。将文件重命名为 MyTwigExtension.php

File names are case-sensitive on linux and it doesn't find anything because it tries to load ../MyTwigExtension.php. Rename your file to MyTwigExtension.php.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文