IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 10. diel - Triedny prvky v PHP druhýkrát - konštanty

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Michal Žůrek - misaz:2.9.2013 12:25

Výčtové typy (UNUM) v PHP mělo předpokládám být ENUM.

 
Odpovedať
2.9.2013 12:25
Avatar
Kit
Tvůrce
Avatar
Kit:2.9.2013 14:20

Ten příklad se statickou metodou je tak trochu umělý. Ve skutečnosti bychom si vystačili s voláním

$clovek = new Clovek('Jan', 'Novák', 32, $heslo);

Uvnitř konstruktoru by byl test na délku hesla a v případě nesplnění stačí jen

throw new Exception('Heslo musí být dlouhé minimálně 5 znaků');

Tím se nám celá kontrola zapouzdří do třídy a nikdo už instanci $clovek s kratším heslem nevytvoří ani kdyby chtěl.

Odpovedať
2.9.2013 14:20
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:2.9.2013 15:45

To by určitě také šlo, ale to funguje jen díky tomu, že se jedná o chybový stav. Určitě by se daly vymyslet jiné statické metody, které by se na třídě hodily. Napadá mě třeba obsazenost přezdívky, kterou by si tahal AJAX.

Editované 2.9.2013 15:46
Odpovedať
2.9.2013 15:45
New kid back on the block with a R.I.P
Avatar
David Hartinger
Vlastník
Avatar
Odpovedať
2.9.2013 15:47
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:2.9.2013 15:55

Obsazenost přezdívky je také chybový stav :)

Odpovedať
2.9.2013 15:55
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:2.9.2013 15:57

Přece nebudeš v AJAXu tvořit instanci uživatele abys zjistil, zda není obsazená přezdívka :P Ale stejně je vykonstruovaná i ta třída, v reálu se to moc na objekty nemapuje. Že jde vše zapsat bez statiky jsem v článku psal. Statika se u webových aplikací používá hodně a lidé se s ní budou setkávat, ať už je to dobře nebo ne. Na něčem se to ukázat musí.

Odpovedať
2.9.2013 15:57
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:2.9.2013 16:09

Ta instance se přece nevytvoří, protože výjimka jí to nedovolí. A jak jinak chceš zajistit exkluzivitu přezdívky než tím, že ji v databázi založíš? A když už budeš chtít založit v databázi záznam, tak pro něj potřebuješ data. Nejlépe z objektu. A tomu data předáš konstruktorem.

Pokud v databázi přezdívka existuje, INSERT se neprovede a vyhodí se výjimka. Tím se napůl vytvořený objekt zlikviduje. Vše je hezky zapouzdřeno do jediné třídy. Volající metoda nemusí žádnou duplicitu testovat, protože to není její starost.

Editované 2.9.2013 16:10
Odpovedať
2.9.2013 16:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:2.9.2013 16:37

Bavíme se o AJAXu, chci tedy zjistit obsazenost přezdívky ještě předtím než uživatel vyplní formulář a zadá tak vše, co je třeba k vytvoření instance.

Odpovedať
2.9.2013 16:37
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:2.9.2013 16:44

A co když mezitím (po tomto testu, ale před vytvořením instance) někdo tu přezdívku obsadí?

Odpovedať
2.9.2013 16:44
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:2.9.2013 17:08

Tak to samozřejmě zachytí validátor na serveru.

Editované 2.9.2013 17:08
Odpovedať
2.9.2013 17:08
New kid back on the block with a R.I.P
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!