如何在Latte中注册过滤器(以前的助手)?

Nor*_*hys 7 php nette

我想为Latte模板引擎创建自己的过滤器.他们的文档中有一个示例,但没有描述如何在演示者中注册它.

<?php
    $latte = new Latte\Engine;
    $latte->addFilter('myFilter', function ($s) {
        return someMagic($s)
    });
?>
Run Code Online (Sandbox Code Playgroud)

我打赌将有简单的方法在演示者中获取Latte\Engine的实例,但我不确定如何.

小智 7

过滤器也可以注册config.neon.

services:
    nette.latteFactory:
        setup:
            - addFilter(abs, @App\Latte\AbsFilter)

    - App\Latte\AbsFilter
Run Code Online (Sandbox Code Playgroud)

Filter类可以如下所示:

namespace App\Latte;

class AbsFilter extends \Nette\Object
{
    /**
     * @param int $number
     * @return int
     */
    public function __invoke($number)
    {
        return abs($number);
    }
}
Run Code Online (Sandbox Code Playgroud)