树枝添加过滤器
Twig Add Filter
我有一个在我的 twig 模板中添加 ucfirst
过滤器的用例,我使用它可以正常工作:
$this->getServiceLocator()
->get('Twig_Environment')
->addFilter(
new \Twig_SimpleFilter(
'ucfirst',
'ucfirst'
)
);
不过我很好奇是否可以通过 module.config.php
?
添加此过滤器
也许是这样的:
'zfctwig' => [
'environment_options' => [
'cache' => 'data/cache/twig',
'debug' => true
],
'extensions' => [
'Twig_Extension_Debug'
],
'Twig_Environment' => [
'filters' => [
'ucfirst' => 'ucfirst'
]
]
]
我知道这个片段是错误的,但如果可能的话,配置会是什么样子?
我目前正在使用带 ZfcTwig 模块的 ZF2。
不,仅通过 ZfcTwig 模块中的配置无法注册新过滤器。
但建议创建项目扩展 (twig doc) 并将所有项目特定过滤器(标签、测试等)放在那里。
此项目扩展的示例:
<?php
namespace Application\Twig;
use Twig_Extension;
use Twig_SimpleFilter;
class ApplicationExtension extends Twig_Extension
{
public function getFilters()
{
return [
new Twig_SimpleFilter('ucfirst', 'ucfirst'),
];
}
public function getTests()
{
return [
// ...
];
}
public function getFunctions()
{
return [
// ...
];
}
}
然后您只需将此扩展注册到 ZfcTwig 配置即可:
'zfctwig' => [
'extensions' => [
\Application\Twig\ApplicationExtension::class,
],
]
如果需要再添加一些其他过滤器或功能,只需将其添加到此扩展并开始使用即可。
你可以按照推荐的方式在多页和非动态中完成,或者简单的方法:
$twig_env->addFilter(new \Twig\TwigFilter('ucf','ucfirst'));
无需编辑 YAML 文件,非 php 内容或使用 composer。
我有一个在我的 twig 模板中添加 ucfirst
过滤器的用例,我使用它可以正常工作:
$this->getServiceLocator()
->get('Twig_Environment')
->addFilter(
new \Twig_SimpleFilter(
'ucfirst',
'ucfirst'
)
);
不过我很好奇是否可以通过 module.config.php
?
也许是这样的:
'zfctwig' => [
'environment_options' => [
'cache' => 'data/cache/twig',
'debug' => true
],
'extensions' => [
'Twig_Extension_Debug'
],
'Twig_Environment' => [
'filters' => [
'ucfirst' => 'ucfirst'
]
]
]
我知道这个片段是错误的,但如果可能的话,配置会是什么样子?
我目前正在使用带 ZfcTwig 模块的 ZF2。
不,仅通过 ZfcTwig 模块中的配置无法注册新过滤器。
但建议创建项目扩展 (twig doc) 并将所有项目特定过滤器(标签、测试等)放在那里。
此项目扩展的示例:
<?php
namespace Application\Twig;
use Twig_Extension;
use Twig_SimpleFilter;
class ApplicationExtension extends Twig_Extension
{
public function getFilters()
{
return [
new Twig_SimpleFilter('ucfirst', 'ucfirst'),
];
}
public function getTests()
{
return [
// ...
];
}
public function getFunctions()
{
return [
// ...
];
}
}
然后您只需将此扩展注册到 ZfcTwig 配置即可:
'zfctwig' => [
'extensions' => [
\Application\Twig\ApplicationExtension::class,
],
]
如果需要再添加一些其他过滤器或功能,只需将其添加到此扩展并开始使用即可。
你可以按照推荐的方式在多页和非动态中完成,或者简单的方法:
$twig_env->addFilter(new \Twig\TwigFilter('ucf','ucfirst'));
无需编辑 YAML 文件,非 php 内容或使用 composer。