Template a soubor přímo v konstruktoru

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

Ahoj, jak jsem si všimnul, tak se v Nette objevil volitelný parametr Template($file). Když už je v template, nepřidat ho i do Control.php:74 createTemplate(). Úprava vypadá následovně.

	/**
	 * @param  string  template file path
	 * @return ITemplate
	 */
	protected function createTemplate($file = NULL)
	{
		$template = new Template($file);
		// ... Dále je to stejné
	}
Honza Marek
Člen | 1664
+
0
-

+1

Ondřej Mirtes
Člen | 1536
+
0
-

Taky se za to přimlouvám :)

Honza Kuchař
Člen | 1662
+
0
-

Jenom jsem si všiml jedné nepříjemnosti. Pokud má někdo přepsanou metodu createTemplate, tak mu to bude vyhazovat warning:

Strict Standards: Declaration of DataGrid::createTemplate() should be compatible with that of Control::createTemplate() in E:\00_Data\00_Vyvoj\GRIFART\source\PHP\app\components\DataGrid\DataGrid.php on line 40

Tzn. byl by to BC break.


Použít func_get_args();?

// EDIT: Texy mě nepochopilo. :(

Editoval honzakuchar (4. 10. 2009 10:44)

Vitek Jezek
hledá kolegy | 285
+
0
-

++

David Grudl
Nette Core | 8218
+
0
-

Tohle je lépe srozumitelné:

$template = $this->createTemplate()->setFile(...);
Honza Kuchař
Člen | 1662
+
0
-

Hmm, nevšiml jsem si, že je tam fluent intarface.