Jelenlegi hely

Utolsó változások

3.10.2. Front controller

A 3.6.2 fejezet egyszerűbb megoldása után nézzünk a Front controller tervezési mintáról is egy korszerűbb, objektumorientált megoldást. Jelen fejezet példája Chris Corbyn A lightweight and flexible front controller for PHP 5 cikkéből származik.

Példaként egy egyszerű vendégkönyv jellegű alkalmazást fogunk megismerni.

3.10.1. Stratégia

A Strategy egy objektumba zárt algoritmus. Az egységbezárás miatt az algoritmus jól elkülöníthető a kód más részeitől, az öröklődés miatt pedig a stratégia könnyen lecserélhető egy másikra.

Validátor példa

A fejezet példája segítségével az űrlap által küldött adatok érvényességének ellenőrzését (validálását) fogjuk elvégezni.

Nézzünk egy hagyományos, nem túl praktikus megközelítést:

3.9.3. Kivételkezelés

A kivételkezelés objektumorientált nyelvek esetén gyakran használt hibakezelési megoldás.

A fejezet megértéséhez szükséges a 3.8 fejezet ismerete.

Mi is a kivétel?

A PHP 5-tel egy új objektumorientált lehetőség is adott a hibák kezelésére.

A kivételkezelés használatakor az megváltoztatja az utasítások végrehajtásának normál menetét, ha egy meghatározott hiba bekövetkezik. Ezt a feltételt kivételnek nevezzük.

Általában a következő történik kivétel kiváltódásánál:

3.9.2. Alapértelmezett hibakezelő függvény készítése

A hibakezeléssel kapcsolatban az egyik legnagyobb veszély, hogy elfeledkezünk egyes hibalehetőségek lekezeléséről. Ezért praktikus, ha minden lehetséges hibát egységesen kezelünk le. Az alapötlet az, hogy megkérjük a futtatókörnyezetet: minden hiba esetén hívja meg ugyanazt a függvényt. Ezt a hibakezelő függvényt tehát nem a mi kódunk fogja közvetlenül meghívni. Az ilyen függvényt callback függvénynek szokás hívni.

3.9. Hibakezelés

Amikor webalkalmazásokat készítünk, a hibakezeléssel nagyon fontos törődni. Ha az alkalmazásunk nem végez korrekt ellenőrzéseket, az oldal hibásan fog működni, és biztonsági réseket tartalmazhat.

Ez a fejezet a PHP-ben leggyakrabban alkalmazott hibakezelő módszereket mutatja be:

  • egyszerű die kifejezés
  • hibakezelő függvények
  • kivételkezelés

3.8.5. Láthatóság

A PHP 5-ös objektummodellje abban is újdonságot hozott, hogy háromféle láthatóságot vezetett be a tagokra nézve:

  • public: kívülről korlátlanul elérhető (ez a PHP 4-es hozzáállása is, a var szó is ezt jelenti)
  • private: csak a saját osztályon belül látható, még a leszármazottakban sem
  • protected: a saját és a leszármazott osztályból látható

Adattagokat alapvetően privát, esetleg végett, míg konstruktorokat, metódusokat általában publikus láthatósággal hozunk létre.

Nézzünk egy egyszerű példát:

3.8.4. Asszociáció

Az egyes objektumok között gyakori a tartalmazási vagy hasonló kapcsolat. Pl. a fal téglákból áll:

3.8.3. Öröklődés

Az öröklődés a kód újrahasznosításának egy gyakori módja. Az alábbi formElement osztály adattagjait és tagfüggvényét örökli a leszármazott dateInput osztály.

3.8.2. Osztályok használat

Nézzük meg PHP szintjén is néhány példán keresztül az alapfogalmakat, alapvetőbb technikákat.

PHP-ben először létre kell hoznunk (definiálnunk kell) az osztályt, hogy utána abból példányosítva az objektumok is létrejöhessenek.

Oldalak