Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to register filters (formerly helpers) in Latte?

Tags:

php

nette

I would like to create my own filter for Latte templating engine. There is an example in their documentation but it doesn't describe how to register it inside presenter.


$latte = new Latte\Engine;
$latte->addFilter('myFilter', function ($s) {
    return someMagic($s)
});

I bet there will be simple way to get instance of Latte\Engine inside presenter but I'm not sure how.

like image 573
Northys Avatar asked Nov 07 '14 22:11

Northys


1 Answers

Filters can be registered through config.neon too.

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

    - App\Latte\AbsFilter

Filter class can look like this:

namespace App\Latte;

class AbsFilter extends \Nette\Object
{
    /**
     * @param int $number
     * @return int
     */
    public function __invoke($number)
    {
        return abs($number);
    }
}
like image 55
Tomáš Jacík Avatar answered Sep 29 '22 05:09

Tomáš Jacík