Inline zápis handleru pro registerFilter

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

Řeším, proč není možné zapisovat filtry inline způsobem, tedy podobně jako:

<?php
public function templatePrepareFilters($template) {
	parent::templatePrepareFilters($template);
	$template->registerFilter( function( $s ) {
		return $s;
	});
}
?>

Aktuální dev verze vrací:

InvalidStateException
Filter ‚Closure::__invoke‘ was registered twice.

David Grudl
Nette Core | 8173
+
0
-

Tam je, z historických důvodů, test, jestli filtr není zaregistrován 2× (kdysi to býval obvyklý bug). Zřejmě by se to už dalo odstranit.

knyttl
Člen | 196
+
0
-

Zvláštní je, že to dělá i ve chvíli, kdy jediným registrovaným filtrem je Latte…