Vlastné helpery využívajúce vstavané, PHP 5.2

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

Zdravím,

akým spôsobom pridať helper tak, aby vedel využívať štandartné (a ideálne aj predtým definované vlastné) helpery? V php 5.3 je to riešené anonymnými funkciami s použitím use , ale ako na to v PHP 5.2, ktoré anonymné funkcie nepozná?

Príklad v PHP 5.3:

abstract class BasePresenter extends Nette\Application\UI\Presenter
{

	protected function createTemplate($class = NULL)
	{
		$template = parent::createTemplate($class);

		$template->registerHelper('money', function ($prize, $currency = '€') use ($template) {
			$prize = (double) trim(strtr($prize, array(' ' => '', ',' => '.')));
			return $template->number($prize,2,',',' ') . ' ' . $currency;
		});

		return $template;
	}

}

PHP 5.2:

Terra incognita
Vojtěch Dobeš
Gold Partner | 1316
+
0
-
class MyHelpers
{

	private $template;

	public function setTemplate($template)
	{
		$this->template = $template;
	}

	public function money($prize, $currency = '€')
	{
			$prize = (double) trim(strtr($prize, array(' ' => '', ',' => '.')));
                        return $this->template->number($prize,2,',',' ') . ' ' . $currency;
	}

}
$myHelpers = new MyHelpers;
$myHelpers->setTemplate($template);
$template->registerHelper('money', callback($myHelpers, 'money'));

Editoval vojtech.dobes (12. 9. 2012 1:10)