logo

Jazyk PHP a jeho frameworky


PHP
        Jazyk PHP je jedeným z najpopulárnejších skriptovacích jazykov, ktorý sa používa v spolupráci s HTML jazykom a prináša tak do sveta internetu dynamicky generované webové stránky. Tento jazyk slúži na písanie aplikácií postavených na architektúra klient-server. Tento typ aplikácie sa správa tak, že predtým ako sa stránka odošle užívateľovi, tak je PHP časť kódu vykonaná na strane servera a klientovi sú odoslané vygenerované informácie. Už od začiatku sa PHP teší veľkej obľube, čo svedčí o tom že behom pár prvých rokov 1995-1998 bolo na PHP postavených okolo 150 000 stránok a do roku 2004 to už bolo okolo 15 000 000. Súčasná verzia je PHP 5, ktorá priniesla úplnú implementáciu objektovo orientovaného programovania aj do jazyka PHP a mnoho ďalších zmien. Jazyk PHP je voľne šíriteľný a jeho používanie je zadarmo, navyše ho podporuje každý hostingový server. Ak chcete pod týmto programovacím jazykom vyvíjať, je potrebné si zriadiť svoj vlastný web server. Ideálnym kandidátom je web server Apache v kombinácii s databázou MySQL, a to všetko bežiace na operačnom systéme Linux. Táto kombinácia je označovaná skratkou LAMP( Linux Apache MySQL PHP). Získate tak svoj vlastný localhost server, na ktorom môžete vyvíjať svoje vlastné PHP aplikácie.

 

PHP bolo pôvodne navrhnuté ako niekoľko skriptov v jazyku Perl, neskôr prepísaných do jazyka C. Autorom bol Rasmus Lerdorf v roku 1994. O rok neskôr svoje skripty zverejnil pod názvom "Personal Home Page Tools". Kombináciou s ďalším jeho programom Form Interpreter vzniklo PHP/FI. Zeev Suraski a Andi Gutmans, dvaja izraelskí vývojári, prepísali syntaktický analyzátor (parser) v roku 1997 na novšiu verziu, ktorá sa stala základom PHP 3. Krátko po zverejnení verzie PHP 3 bola spustená aj oficiálna stránka. V roku 1999 sa Suraski a Gutmans opäť pustili do prepísania jadra, už pod názvom Zend engine. Založili spoločnosť Zend Technologies, ktorá sa odvtedy podieľa na ďalšom vývoji PHP. V máji 2000 bolo vydané PHP 4, ktorého jadro tvoril nový Zend Engine 1.0. 13. júla 2004 bola vydaná verzia PHP 5, s jadrom "Zend Engine II", obsahujúca nové rysy, ako napr. vylepšenú podporu objektovo orientovaného programovania, PHP Data Objects extension a ďalšie.“[1] PHP je viac ako bežný skriptovací jazyk, a to vďaka modulárnemu návrhu, ktorý je možné využiť na vývoj aplikácií s užívateľským grafickým prostredím.

 

  Jazyk PHP sa už od svojho vzniku teší veľkej obľube pri tvorbe webových aplikácií a v súčastnosti vďaka PHP frameworkom zažíva ďalší evolučný krok. Medzi jeden z prínosov PHP frameworkov patrí návrhový vzor MVC architektúry, ktorý umožňuje písať aplikácie v oveľa kratšom čase a kvalitnejšie. Ich základom je modulárnosť a každý framework má svoju špecifickú rozsiahlosť knižníc, ktorá z väčšej časti pokryje bežné požiadavky na aplikáciu. Existuje neprehľadné množstvo PHP frameworkov a rozdielov medzi nimi. Niekoho by to až mohlo odradiť, ale prínos je nekompromisný. Je dobré sa orientovať na framework so širokou komunitou, alebo prípadne projekt vyvíjaný nejakou spoločnosťou, pri ktorých sa dá predpokladať dlhá podpora a vývoj. 

 

Kedže počet PHP frameworkov je príliš veľký, je potrebné sa zamerať len na zaujímavé projekty konkrétne CakePHP, CodeIgniter, Prado, Symfony, Zend Framework. Tieto patria k najbežnejším a zároveň aj k najzaujímavejším. Každý z tých lepších frameworkov má špecifické vlastnosti a novinkou je udalosťami riadené programovanie (EDP) zakomponované do frameworku PRADO.


 

prehľad php frameworkov

 

 

Ako pracuje PHP framework

 

 

  Framework je napísaný v rovnakom jazyku ako vyvíjaná aplikácia. Nejedná sa o nejaký samostatný program, ale o prostredie v ktorom je organizovaná a napísaná ďalšia aplikácia v jazyku PHP. Základnú výbavu tvoria knižnice, ktoré pokrývajú veľkú časť funkčných požiadaviek a sú spoločné pre väčšinu aplikácií. Pre aplikácie vo webovom prostredí je to napríklad prístup k databáze, validácia vstupných dát, kešovanie. Vďaka frameworku sa programátor odbremení od písania kódu, ktorý sa dá vygenerovať a môže sa venovať špecifickým požiadavkám aplikácie.

 

Architektúra MVC 


MVC predstavuje návrhový vzor, ktorý nám umožňuje rozdeliť aplikáciu do niekoľkých transparentných vrstiev. Model zabezpečuje manipuláciu s dátami (ukladanie, výber, aktualizáciu atď) a následne predáva dáta Controlleru. Controller má na starosti chod celej aplikácie a podľa požiadaviek zo strany užívateľa rozhoduje o vykonaní jednotlivých akcií. View predstavuje prezentačnú vrstvu, ktorá zobrazuje získané dáta v požadovanej forme.

 

model-view-controller

 

Súčasné webové aplikácie sú si v základných rysoch podobné, všetky požiadavky a potreby na aplikáciu nie sú nijak unikátne. Každá aplikácia sa pripája k databáze, vyberá dáta z databázy, transformujete dáta, ukladá dáta do databázy, zobrazujete dáta užívateľovi, atď. Začať programovať aplikáciu od príkazu mysql_connect a donekonečna písať stále tie isté sql dotazy je veľmi vyčerpávajúce a neefektívne. Pri MVC stále platí základné pravidlo - konvencia má prednosť pred konfiguráciou. Toto pravidlo v praxi znamená, že v aplikácii treba tvoriť len to, v čom sa líši od ostatných, to ostatné funguje „akoby samo“.

 

Active Record reprezentuje návrhový vzor, ktorý pracuje tak, že mapuje databázové tabuľky na triedy, z riadkov vytvorí objekty a stĺpce budú ich atribúty. Z názvu triedy modelu teda jednoducho odvodíme názov tabuľky, napr. máme model Users, a k nemu patrí tabuľka users. Zároveň nám Active Record umožňuje zadefinovať vzťahy medzi dvomi tabuľkami (hasMany, belongsTo, hasManyAndBelongsTo…), okrem toho obsahuje výkonné nástroje pre prácu s dátami v tabuľkách ako je zápis, čítanie a validácia.

 

Najdôležitejším prínosom je, že programátorovi značne uľahčuje prácu s databázou, pretože nemusí písať SQL príkazy. Programátor bežne strácal veľa času ladením SQL dotazov a následným mapovaním výsledkov, atď. Active Record mu umožňuje pracovať na oveľa vyššej úrovni.

 

Controller a View

 

 

Controller tvorí tú časť aplikácie, ktorá prichádza ako prvá do styku s požiadavkami od vonkajšieho sveta, ktoré prichádzajú na aplikáciu. Najpoužívanejším prípadom takejto požiadavky z vonkajšieho sveta je URL adresa. PHP frameworky sa snažia vytvárať a používať tzv. user friendly url. Príklad takejto adresy môžeme vidieť na ukážke. Ak máme pristupovať k našej aplikácii prostredníctvom URL adresy, potrebujeme mechanizmus, ktorý na základe tejto URL adresy určí, že aplikácia „pozná“ na aké prvky aplikácie má smerovať dané požiadavky. Takýto mechanizmus sa nazýva routing. View je prezentačná vrstva, ktorá dané dáta zobrazuje v požadovanej forme.

 

 

ukážka cesty

 

 

Model

 

Model sa stará o manipuláciu s dátami (ukladanie, výber, aktualizáciu, atď) a následne odovzdáva dáta Controlleru. Aby sme vedeli správne navrhnúť databázu a framework na jej základe správne chápal väzby medzi tabuľkami, je potrebné poznať konvencie pre návrh databázy u daného frameworku. Čo myslím tým, aby framework správne chápal väzby medzi tabuľkami? Znamená to, že ak budeme mať databázu správne navrhnutú, framework bude automaticky rozpoznávať cudzie kľúče, primárne kľúče a väzby medzi tabuľkami a nebudeme ich musieť pre každú tabuľka explicitne zadávať. Každá pokročilejšia webová aplikácia má typické požiadavky, ktoré sú spoločné a preto by ich mal každý lepší framework svojím spôsobom zabezpečovať:

 

 

  • vhodná architektúra aplikácie

  • modularita

  • zabezpečenie

  • validácia vstupných parametrov

  • užívateľská autentizácia

  • session a entitné autentizácie

  • jednotná databázová vrstva

  • logovanie

  • maskovanie URL








                             

logo