přepsání callback() pro helperLoader v nette 2.1
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Ivorius
- Nette Blogger | 119
Jak mám přepsat https://latte.nette.org/en/develop#… abych se zbavil volání callback(), které bylo v nette 2.1 zrušeno.
Dle rad, jsem zkusil to s array(), ale pak mi laděnka
vyhazuje Callback 'Array' is not callable
Zjednodušeně, to mám takto
abstract class BaseControl extends UI\Control {
/** @var Helpers */
protected $myHelper;
protected function createTemplate($class = NULL) {
$template = parent::createTemplate($class);
$template->registerHelperLoader(array($this->myHelper, 'loader'));
return $template;
}
}
class Helpers extends Nette\Object {
public function loader($helper) {
if (method_exists($this, $helper)) {
return array($this, $helper);
}
}
}
- David Matějka
- Moderator | 6445
array (2)
0 => NULL
1 => "loader" (6)
takze mas prazdny $this->myHelper
- David Grudl
- Nette Core | 8233
callback() není potřeba přepisovat. Jednak v Nette 2.1 ta funkce stále existuje, ale především si ji člověk může kdykoliv doplnit:
function callback($val, $method = NULL)
{
return $method === NULL ? $val : array($val, $method);
}