Twig找不到扩展名......我应该使用什么命名空间?

时间:2017-07-20 22:16:28

标签: twig composer-php

我正在将一个BASE64编码的字符串传递给一个twig模板,我想要一个twig扩展名解码。

我用作曲家安装了twig,我没有使用任何其他框架,我发现的大部分扩展示例似乎都假设你是,而且我认为这给我带来了麻烦。我似乎无法找到我的分机。

所以我认为我有一个名称空间问题。我的设置:

root/
    -index.php
    -vendor/
            -twig/

鉴于此设置,我应该在哪里放置扩展文件以及文件顶部应该有什么名称空间?加载它的正确方法是什么?

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

如果您的应用程序过于复杂,您只需在注册和加载Twig的位置添加扩展程序即可。

// index.php

require_once __DIR__ . '/vendor/autoload.php';

$loader = new Twig_Loader_Filesystem('/path/to/templates');
$twig = new Twig_Environment($loader, array(
    'cache' => '/path/to/compilation_cache',
));

// an anonymous function:
$base64Decode = new Twig_Filter('base64_decode', function ($string) {
    return base64_decode($string);
});

// or a simple PHP function:
$base64Decode = new Twig_Filter('base64_decode', 'base64_decode');

// add the function to your Twig environment:
$twig->addFilter($base64Decode);