« 1 2
Autor Zpráva
HonzaM
Profil *
No jo, ale tu funkci autoload nevoláš v žádný třídě a přesto tam můžeš používat třídy z jiných souborů. Jak to je možný?
A ještě bych něco potřeboval, mám tento kod:
public function AddTextInput($label, $name, array $attributes = null)
   {
       return $this->AddElement(new TextInput($name,$attributes), $label);
   }
   
   public function AddElement(Element $element, $label)
   {
       $label = new Label($label,$name);
       $element[$name] =  $element;
   }
Ale přesně nerozumím tomu co dát do třídy element. v AddTextInput dávám jako první parametr TextInput a v Addelement tam zase dávám element. Je to takto dobře? A co všechno by měla umět ta třída Element? mám jí jako abstraktní a představa je taková, že třída form bude pro vytváření a vypisování formuláře potom budou jednotlivý třídy s elementy kde se nastaví jejich atributy a vrátí se již hotový html kod a ta třída Element by měla být asi jako mezivrstva, ale nevím co všechno by měla umět
Joker
Profil
HonzaM:
Jak to je možný?
Viz odkázaný manuál (resp. konkrétněji)
You may define an __autoload() function which is automatically called in case you are trying to use a class/interface which hasn't been defined yet.
= Můžete definovat funkci __autoload(), která se automaticky zavolá ve chvíli, kdy se snažíte použít třídu nebo rozhraní které ještě nebylo definováno.
Johnik
Profil
Jak jsem již psal, Element může být klidně rozhraní, jde pouze o sjednocení elementů. Jestli nemáš třídu Html, tak ve třídě Element bude jen metoda render. Když ano, tak v ní nebude nic. Není nutné aby v té třídě za každou cenu něco bylo. Nebo tam můžeš dát zjišťování uživatelské hodnoty apod., prostě vše to, co budou mít elementy společné.
HonzaM
Profil *
Aha no tak já to udělám jako rozhraní. Třídu html jsem zatím zrušil a na renderování udělám novou třídu a budu vytvářet její instanci ve Form
« 1 2

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0