Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

1. diel - Úvod do knižníc a frameworkov v PHP

Vitajte v prvom dieli seriálu tutoriálov o tvorbe knižníc pre PHP. Počas seriálu tu krok za krokom vytvoríme niekoľko veľmi užitočných knižníc pre najrôznejšie účely (napr. Pre dátum a čas, prácu s obrázkami, stringy alebo formulári).

Pre koho je seriál určený

Tento seriál bude trochu iný, ako tie doterajšie o PHP tu na ITnetwork. Posunie vás o poriadny kus dopredu, ale bude už písaný v pokročilejšom štýle.

Seriál samozrejme vyžaduje znalosti OOP a tiež aspoň elementárne základy angličtiny, pardon, ale bez nej sa jednoducho nezaobídete a už nie sme u Hello Objects, aby sme písali všetko česky.

Prečo používať knižnice

V PHP sa bez kvalitných knižníc u vážnejších projektov nezaobídete. Sú k tomu hneď dva dôvody.

  1. Hoci je PHP veľmi vysoký jazyk a obsahuje veľa užitočných funkcií, časom začnete narážať na medzery v jeho štandardných knižniciach. Mnoho dôležitých funkcií v ňom totiž chýba alebo sa s nimi veľmi zle pracuje. Potom, čo zistíte, že ste si v každom projekte znovu a znovu programovali obsluhu formulárov alebo prevod slovenského dáta na databázové, nutne vás napadne si pre tieto základné činnosti vytvoriť jednoduché knižnice.
  2. Z praktických skúseností vám môžem s kľudom povedať, že ak programujete v čistom PHP, tak je asi 50% vášho kódu nepotrebný balast. S použitím kvalitných knižníc napíšete aplikácie za polovicu času as polovičným počtom riadkov. Aplikácia bude ľahko udržiavateľná a jej tvorba vás bude baviť. Nebudete stále vynájsť koleso a riešiť tie isté rutinné veci (ako napr. Ako overiť či je používateľ administrátor), budete sa naopak venovať vymýšľaní zaujímavých funkcií tej danej aplikácie ao tom programovanie predsa je.

Knižnica vs. framework

S knižnicami je tiež úzko spojené slovo Framework. Framework je jednoducho povedané súbor mnohých knižníc, ktoré sú prispôsobené tak, aby k sebe pasovali a tvorili jeden funkčný celok. Zvyčajne všetky pochádzajú od jedného autora alebo skupinu autorov.

Výhody frameworku

Dostanete funkčný celok, ktorý môžete jednoducho používať. Všetky rutinné veci ako napr. Prihlasovanie užívateľov alebo už spomínaná obsluha formulárov budete mať pripravené, stačí z nich zložiť aplikáciu ako zo stavebnice a pridať vlastné logiku. To znie skvele, že?

Kedy použiť framework

Odpoveď na otázku, či máte používať framework, znie: "Určite, ale až budete vedieť naozaj dobre programovať". Frameworky sú pokročilé aplikácie a nech už si ich budete písať sami alebo budete používať nejaký hotový, musíte vedieť dobre programovať a to aj keď vám autor frameworku sľubuje, že práve ten jeho môžete používať prakticky bez znalostí.

Vývoj vlastného frameworku

Vytvoriť si svoj framework nedá zas toľko práce, ako by sa mohlo zdať. Stačí chápať MVC architektúru a napísať si pár knižníc. Človek sa tým okrem iného aj dosť naučí, presne to tu budeme my robiť. Vytvoríme pár najdôležitejších knižníc pre bežné situácie a spolu so seriálom o MVC architektúre dosiahneme programátorské nirvány v podobe nástroja, ktorý budete s radosťou denne používať a ktorý vám ušetrí veľa času.

Ďalšou možnosťou je siahnuť po nejakom hotovom frameworku, pre PHP je ich hneď niekoľko. Ak tak urobíte, dostanete ihneď často vysoko kvalitné funkcionalitu úplne bez práce a zadarmo. Mali by ste počítať is nevýhodami týchto riešení.

Nevýhody hotového frameworku

  • České vývoj - Musíte si uvedomiť, že daný framework nie je štandardnou súčasťou PHP, ale je to kód tretej strany. Nikto vám nezaručuje, že je správne, že sa bude ďalej vyvíjať aj pre nové verzie PHP a že sa nebude jeho rozhrania často meniť. Ak zvolíte zle a postavíte svoju aplikáciu na frameworku, ktorý je nekvalitný, môžete ju potom rovno zahodiť a napísať znovu. To isté sa stane aj treba u kvalitného frameworku, ktorého autor sa ho rozhodne prestať vyvíjať (to sa stalo napr. S českým phpRS, všetci sa modlíme, aby sa to nestalo s Nette).
  • Zmeny rozhranie - Každý framework má nejaké svoje určité rozhranie. To sa musíte dobre naučiť, aby ste ho mohli používať. S vývojom frameworku sa rozhranie mení.
  • Naivné pocit bezpečia - S nesprávne použitým frameworkom môžete naprogramovať rovnako zraniteľnou aplikáciu ako bez neho, je to stále len PHP.

Aby to bolo fér, spomeňme si aj nevýhody vlastného frameworku.

Nevýhody vlastného frameworku

  • Zlý návrh - Ak sa na frameworku učíte, je veľmi pravdepodobné, že niečo zle navrhnete. A keď na tejto chybe potom postavíte väčšie aplikáciu, opravuje sa to zle.
  • Bezpečnosť - Musíte sa sami zaujímať aspoň o základné otázky bezpečnosti a spoznať v jazyku PHP funkcie, ktoré by ste asi inak nepoužili. Tento bod vidím aj ako výhodu, skúsenosti sú to na nezaplatenie, ale nie každý na to má čas a vytrvalosť.
  • Veľké množstvo práce - Hoci v budúcnosti vám vlastné framework prácu ušetrí, zo začiatku musíte napísať pomerne veľké množstvo kódu, ktoré môže spomaliť štart nového projektu.

Konečné riešenie

Každý dobrý programátor by si mal skúsiť napísať aspoň jednoduchý MVC framework a niekoľko knižníc, aby pochopil základné myšlienky a princípy. Z hotového celku princíp totiž zle vykoukáte a používať niečo ako blackbox (že neviete, ako to vnútri funguje) sa nevypláca. A to ako z hľadiska výkonu, ako aj z hľadiska bezpečnosti, návrhu a určite by sme toho vymysleli ešte veľa ... Potom už záleží len na vás, či budete svoje jednoduché riešenie vylepšovať alebo nadobudnuté znalosti použijete k osvojeniu nejakého geniálneho frameworku, ktorý už niekto napríklad niekoľko rokov vyvíja, medzi tie dobré patrí napríklad Nette alebo Symfony.

Či už budete stavať na svojom alebo hotovom frameworku, vaše rozhodnutie bude mať vždy určité výhody a určité nevýhody. Ani jedna voľba nie je úplne zle alebo úplne správne.

Pre ľudí, ktorí sekajú weby ako Baťa cvičky, je cudzie framework ideálnym riešením. Pre tých, ktorí spravujú dlhšiu dobu nejaký svoj projekt alebo niekoľko projektov môže byť výhodnejšie vlastné riešenia, nikto vám nebude meniť rozhranie a nebude vás ohrozovať budúcnosť vývoja frameworku a podobne, čo je u veľkého projektu dôležité.

To by bolo na úvod do problematiky všetko, už teda viete čo vás tu čaká a prečo sa do toho púšťame. V budúcej lekcii, Knižnica DateUtils pre český dátum a čas v PHP , si vytvoríme svoju prvú knižnicu v PHP, pôjde o jednoduchú, ale prekvapivo šikovnú Utility triedu pre prácu s českým dátumom a časom.


 

Všetky články v sekcii
Knižnice pre PHP
Preskočiť článok
(neodporúčame)
Knižnica DateUtils pre český dátum a čas v PHP
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity