Skip to content
This repository has been archived by the owner on Aug 13, 2021. It is now read-only.

2016-02-02: globalni-registrace-latte-filtru-v-jedne-tride #141

Closed
paveljanda opened this issue Jul 16, 2017 · 1 comment
Closed

2016-02-02: globalni-registrace-latte-filtru-v-jedne-tride #141

paveljanda opened this issue Jul 16, 2017 · 1 comment

Comments

@paveljanda
Copy link
Member

Tímto článkem bych chtěl rozšířit myšlenku od Davida Matějky zde.

A to jak si jednoduše zaregistrovat filtry přes config.neon a přidávat si další jenom rozšiřovaním metod dané třídy.

services:
        latte.latteFactory:
                setup:
                        - addFilter(NULL, [App\Filters, loader])
namespace App;


class Filters
{
        /**
         * @param string
         * @return mixed
         */
        public static function loader(string $filter)
        {
                return (method_exists(__CLASS__, $filter) ? call_user_func_array([__CLASS__, $filter], array_slice(func_get_args(), 1)) : NULL);
        }

        /**
         * @param string
         * @return string
         */
        public static function myFilter(string $s): string {
                return "{$s}ek";
        }
}
{var $foo = "Aleš"}
{$foo|myFilter}

Název filtru je určen jménem konkretní metody.

Návratová hodnota metody nesmí být NULL, jinak vám laděnka bude vypisovat chybu o neexistujícím filtru.

Použitelné pro Nette >= 2.3

@paveljanda
Copy link
Member Author

author: ali (aleswita+nette@gmail.com)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Development

No branches or pull requests

2 participants