Best Practise – manuální render
- 22
- Člen | 1478
Zajímalo by mě:
- mám nějaký BaseForm
- k tomu pak příslušné fomuláře dědící od BaseFormu
Do teď je to pěkné řešení, pokud si vystačím s
DefaultFormRenderer
, ale jak na to, pokud potřebuju manuál
render, tedy vlastní šablonu formuláře? Je jediná možnost ještě ke
každému formuláři udělat vlastní Control
?
- bojovyletoun
- Člen | 667
v neuronu jsem zahlídl pěkně řešení formuláře (ostatně je tam plno skvělých nápadů)- že prostě form má svoji šablonu.
- stanley89
- Člen | 6
řešení je sice pěkné, ale narazil jsem následující problém:
protected function createTemplate()
{
return $this->getPresenter()->createTemplate()->setFile($this->getTemplateFile());
}
Metoda createTemplate() v presenteru je protected, takže se nezavolá. Věděl by někdo o vhodném řešení?
- voda
- Člen | 561
Myslím že i dřív byla protected, v https://github.com/…resenter.php#L41 je to udělané stejně. Jestli bude public nebo protected je podle mne celkem jedno.
- bojovyletoun
- Člen | 667
mě třeba vadí, že Control::$template
je jen read-only,
protože by mi stačilo volat
$this->template=$this->createtemplate("Templating\Template")
→ životní cyklus si ji sám vykreslí. Sice je hezké, že createtemplate
byla upravena, aby se tam dala jednoduše předat vlastní ITemplate, jenže, tu
templatu není možné vložit do this->template.
no a ten protekcionismus u createtemplate se mi taky nelíbí→ jde to obejít ještě takto
PS:
existuje pro
totopublic function createTemplate(){return parent::createTemplate();}
nějaká zkratka, aby se nemusela 2× psát název? (něco jako
parent::__FUNCTION__ nebo forward_static_call?)
Editoval bojovyletoun (25. 11. 2011 18:32)