Plnění šablon proměnnými – lze vynechat metody render<Něco>?
- fary
- Člen | 155
Napadla mě takový věc, že abych měl jednodušší život, mohl bych úplně vynechat všechny metody render<Něco> a místo nich šablony naplnit až na konci metod action<Něco>.
public function actionSomething($param_1, $param_2)
{
....
// Fill template with variables
$this->template->var_1 = $param_1;
$this->template->var_2 = $param_2;
}
Vždycky jsem totiž lokánlí porměnné akcí vkládal do členských proměnných třídy a pak až teprve z těchto členských proměnných do šablon v renderech. Takhle nebudu ty členské proměnné potřebovat. K čemu by se pap metody render daly ještě použít?
- Vojtěch Dobeš
- Gold Partner | 1316
Tohle je sice zkratka, ale popírá smysl oněch metod :). Například
zpracování signálů probíhá po action
metodách, a signály se
obvykle ukončují přesměrováním. Proto pokud bys plnil šablonu už v
action
metodách, zbytečně vytváříš instanci šablony.
Samozřejmě je to na tobě, ale pokud oželíš pár znaků navíc, bude to mít při růstu projektu jen výhody :).
- Šaman
- Člen | 2668
Proč členské proměnné? Zjistil jsem, že mám vždy action, NEBO render metodu, takže za
- nevím kdy nastane potřeba mít obojí
- tohle nebude fungovat? Já to nikdy nepoužil, ale bylo by to první, co bych zkusil, kdybych potřeboval obojí:
<?php
public function actionSomething($param_1, $param_2)
{
// nějaká vnitřní logika, která může končit buď přesměrováním, nebo pokračovat na render metodu
}
public function renderSomething($param_1, $param_2)
{
// práce se šablonou
$this->template->var_1 = $param_1;
$this->template->var_2 = $param_2;
}
?>
- Vojtěch Dobeš
- Gold Partner | 1316
Eh, já si nevšimnul, že šlo o pouhé proměnné akcí… ty samozřejmě
nemá smysl prohánět nějakými členskými proměnnými. Ale třeba článek
načtený podle IDčka už je čistší načíst v action
a do
šablony předat v render
.