[2.2.1] Překrytí defaultního helperu

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Mysteria
Člen | 797
+
+1
-

Zdravím, pokud mám třídu s Helperama,

<?php namespace Utils;
class Helpers extends \Nette\Object {
	public static function loader($helper) {
		if (method_exists(__CLASS__, $helper)) return call_user_func_array("\Utils\Helpers::$helper", array_slice(func_get_args(), 1));
	}

    public static function number($s, $dec = 0) {
        return number_format($s, $dec, '', "\xe2\x80\x87");
    }

	public static function number2($s, $dec = 0) {
        return number_format($s, $dec, '', "\xe2\x80\x87");
    }
}

kterou načítám v BasePresenteru takhle,

$this->template->addFilter(NULL, ['\Utils\Helpers', 'loader']);

tak pokud použiju v šabloně |number2, tak se to formátuje tak jak chci já, pokud ale použiju |number (který by měl přepisovat výchozí Nette implementaci), tak to použiuje výchozí Nette helper.

Pokud ale napíšu do BasePresenteru manuální načtení toho helperu na číslo takto,

$this->template->addFilter('number', function($s, $dec = 0) { return number_format($s, $dec, ',', "\xe2\x80\x87"); });

tak překrytí Nette helperu funguje v pořádku.

Na verzi 2.1.X mi normálně překrývání helperů fungovalo i přes Helper Loader, po aktualizaci na 2.2.1 mi to začalo dělat tohle. Opomíjím někde něco, nebo se jedná o bug? Díky za rady.