#1 Objektovo orientované programovanie v PHP

Dlho som si kládol otázku, načo používať objekty v programovaní? Má objektové programovanie (ďalej iba OOP) v PHP vôbec zmysel? Čo mi môže priniesť? Čím začať? Všetky tieto otázky a ešte viac si vysvetlíme v nasledujúcich riadkoch.

Kedy OOP a kedy nie?

Podľa môjho názoru je OOP nutné v prípade, že návrh PHP programu počíta s veľkosťou kódu nad 2 MB. Rovnako skúsenosť ukázala, že v prípade PHP 4 a starších verzií jazyka PHP sa neoplatí nad OOP ani premýšľať. Využitie tak starého programovacieho jazyka na programovanie v OOP paradigme nemá zmysel. Objektový model PHP 4 je zastaralý a zúfalo nedotiahnutý. Tento problém prekvapivo rieši PHP 5. Našťastie PHP 5 sa príkazovo takmer nelíši od PHP 4, takže sa netreba učiť takmer nič nové. Stačí iba kráčať s dobou. Objektovo orientované programovanie je vhodné pri modulárnej konštrukcii programov, čo znamená, že do programu môžeme vkladať kód bez nutnosti prepisovať existujúci kód. Dôležité je pochopiť, na čo slúži objekt.

Čo to teda je ten objekt?

Objektový model programovacieho jazyka je štruktúra umožňujúca skladať program z častí, ktoré voláme objekty. Jednotlivé objekty chápeme ako malé časti, ktoré neskôr utvoria funkčný celok, avšak umožňujú rýchlu modifikáciu celého programu.

Webová stránka sa skladá z desiatok, možno až z tisícok funkcií, pričom tieto funkcie obsahujú množstvo opakovaného kódu. Keď chceme zmeniť zdrojový kód, ktorý sa opakuje na rôznych častiach, dochádza k rôznym neočakávaným chybám. Programátor zabudne na niečo, čo sa na prvý pohľad neprejavuje a na chybu sa príde až keď je už neskoro. Problém tiež nastáva z časového hľadiska, kód sa stáva neprehľadným a hľadanie detailov zaberá množstvo času.

Objekty tieto problémy riešia, pretože stránka pozostáva z objektov, ktoré zdieľajú svoj kód ďalším objektom v prípade, že potrebujú podobné vlastnosti. Napríklad, ak máme objekt “čiara” s vlastnosťou “dĺžka”, môžeme ho využiť pre vytvorenie objektu “obdĺžnik”. Objekt “obdĺžnik” môže zdediť vlastnosť “dĺžka” od objektu “čiara” a stačí už len doplniť vlastnosť “výška”.

OOP example

To nám pomohlo vytvoriť objekt, v ktorom bolo nutné programovať iba nové vlastnosti. Vzniká tu ale otázka, prečo je nevhodné použitie OOP pri menších projektoch. Objektovo orientované programovanie znižuje veľkosť kódu iba pri rozsiahlejších projektoch. Malé projekty skladajúce sa napríklad z dvoch alebo troch objektov trpia pri použití OOP množstvom nevyužitého kódu.

V prípade, ktorý ste videli na obrázku, by bolo jednoduchšie použiť pár jednoduchých príkazov a nevytvárať žiadne objekty. Predstavte si, že máme podobných objektov vyrobiť 2000. Každý objekt bude napríklad časť webovej stránky. Vieme, že každý objekt na webovej stránke je obdĺžnikom alebo štvorcom. Jednoducho teda dokážeme preniesť vlastnosti ako je farba, výška, šírka, druh tagu atď. na ďalšie objekty. To nám skráti programovanie pri správnom návrhu až o polovicu. Na objektovom programovaní je veľmi dôležitý návrh, pozrime sa teda, na čo treba myslieť.

Dvakrát meraj a potom ešte raz

V prípade OOP je priam nevyhnutné rozdeliť projekt na časti. Je dôležité pochopiť potrebu rozdelenia celku na objekty a v objektoch vyhľadať spoločné vlastnosti. Jednou s ďalších nezanedbateľných súčastí pri návrhu je úplné eliminovanie dedenia nepotrebných vlastností. Nepotrebné vlastnosti môžu v objekte vyvolávať nežiadúce správanie a tak spôsobovať bezpečnostné problémy. Dedenie nám ale poskytuje možnosť skopírovať vlastnosti triedy, ktorá objekt do značnej miery ochráni pred vznikom bezpečnostných rizík. Kvalitný návrh vám umožní využiť potenciál OOP, žiaľ iba v obmedzenom objektovom modele PHP. Ďalšie informácie sa dočítate v pokračovaní.

Späť...