|
PHP
1.1.1. Prezentare generala
PHP este una dintre cele mai interesante tehnologii existente in prezent. Deoarece imbina caracteristici dintre cele mai complexe cu simplitatea in utilizare, PHP a devenit rapid un instrument de frunte pentru dezvoltarea aplicatiilor in Web. Totusi, spre deosebire de alte instrumente populare pentru dezvoltarea aplicatiilor Web, cum este Perl, PHP este un limbaj de programare comod pentru incepatori, chiar si pentru cei care nu au desfasurat activitati de programare in trecut.
Ca si alte limbaje de scripting pentru Web, PHP ne permite sa furnizam un continut Web dinamic, adica un continut Web care se modifica automat de la o zi la alta sau chiar de la un minut la altul. Continutul Web este un element important in sustinerea traficului unui site Web; de regula vizitatorii nu vor mai reveni la o pagina Web care contine aceleasi informatii. Pe de alta parte, site-urile Web frecvent actualizate pot atrage cantitati enorme de trafic.
Spre deosebire de limbajele de scripting, precum Java Script, PHP ruleaza pe serverul Web, nu in browserul Web. In consecinta, PHP poate obtine accesul la fisiere, baze de date si alte resurse inaccesibile programului Java Script. Acestea constituie bogate surse de continut dinamic.
1.1.2. Programe necesare
Pentru a rula aplicatia descrisa in aceasta lucrare aveti nevoie de acces la un server PHP care ruleaza PHP versiunea 4 (sau o versiune mai noua).
1.1.3. Crearea unui script PHP
Un script PHP poate fi foarte simplu sau foarte complex. Totusi, crearea chiar si a unui script PHP complex este extrem de simpla, necesitand numai un editor de texte obisnuit. Majoritatea programatorilor PHP folosesc sub Microsoft Windows programul Windows Notepad. Se poate folosi si un editor mai complex precum WordPad sau chiar Microsoft Word. In acest caz, trebuie sa luati masuri pentru a salva scriptul sub forma de document text in caz contrar, fisierul script contine informatii de formatare care vor deruta serverul PHP.
Daca folositi UNIX sau Linux, puteti crea scripturi PHP folosind un program precum si, emacs sau pico. Programul in sine nu conteaza, atata vreme cat poate crea fisiere text sau ASCII.
PHP este una din cele mai atractive tehnologii disponibile in prezent. Deoarece utilizeaza usurinta de utilizare cu performante sofisticate, PHP a devenit rapid o unealta principala pentru dezvoltari Web. Spre deosebire de alte unelte populare pentru dezvoltari Web, asa cum este Perl , PHP este un limbaj de programare convenabil pentru programatorii incepatorii chiar daca acestia nu au mai programat inainte.
PHP inseamna "Hypertext Pre-Processor" si este un limbaj de programare a scripturilor ce ruleaza pe partea de server a HTML. PHP este o unealta care permite crearea de pagini Web dinamice.
PHP este un limbaj de programare ce se executa pe server si care poare fi folosit pe un sistem ce gazduieste atat servere Web cat si platforme. Se recomanda utilizarea impreuna cu Apache fie pe FreeBSD, fie pe Linux in momentul in care se trece la folosirea sa intr-un mediu real, chiar daca acesta poate rula si pe platforme Win32.
Un limbaj de programare ce se executa pe server se numeste script si este pus in fisierul HTML care constituie site-ul dar serverul proceseaza scriptul inainte ca fisierul HTML sa fie trimis browserului clientului.
Un limbaj de programare ce se executa pe server se numeste script si este convertit in fisierul HTML care este trimis de catre serverul de Web, deoarece serverul proceseaza scriptul inainte de a trimite fisierul HTML browserului clientului.
Codul PHP nu este vizibil. In cazul in care se incearca vizualizarea codului sursa al paginii din browser deoarece serverul proceseaza codul si returneaza doar rezultatul procesarii. In acest mod este mai usoara scrierea de programe si verificarea lor decat programarea in scripturi CGI, in Perl sau in C deoarece tot lucrul se desfasoara intr-o singura pagina si PHP-ul afiseaza orice eroare in pagina.
Un alt avantaj pe care PHP-ul il ofera este abilitatea de a se conecta direct la baze de date relationare utilizand numai functii interne. El suporta o multime de tipuri de baze de date cum ar fii Oracle, DB2, mSQL si MySQL.
In continuare se va prezenta motivul alegerii PHP in detrimentul ASP.
Active Server Pages (ASP) este o tehnologie Microsoft de afisare a paginilor de Web dinamice. ASP suporta multiple limbaje de programare cel mai des utilizat este VBScript. PHP este o alternative gratuita la ASP ce ruleaza pe multiple sisteme de operare incluzand Linux si Windows.
ASP este o tehnologie buna si utila, dar PHP este superior atat tehnologic cat si in ceea ce priveste popularitatea. In continuare sunt prezentate cateva motive pentru care s-a ales PHP:
1. Viteza de reactie
ASP nu va fi probabil niciodata la fel de rapid ca PHP. ASP este creat pe o arhitectura bazata pe COM. Cand un programator ASP utilizeaza VBScript el utilizeaza un obiect COM. Cand el scrie clientului el apeleaza la raspunsului obiectului COM. Cand acceseaza o baza de date el utilizeaza un alt obiect COM iar cand acceseaza un fisier sistem un alt obiect.
In modulele PHP totul functioneaza in spatiul de memorie al PHP-ului. Aceasta inseamna ca codul PHP va rula mai rapid deoarece nu necesita diferite obiecte COM in diferite procese.
Acest fapt este justificat in tabelul urmator in care se prezinta executia unei comenzi SELECT de 40 de ori in Microsoft SQL Server 7 utilizand extensia PHP MSSQL7, extensia PHP ODBC si COM.
Interogarea PHP MSSQL7
Secunde
Utilizand extensia MSSQL
01.88
Utilizand extensia ODBC
09.54
Utilizand ODBC via COM (ADO)
17.28
Utilizand OLEDB via COM
06.19
2. Management mai bun al memoriei
In IIS 4 daca fisierul ASP header.asp este inclus in 20 de pagini de Web atunci 20 de copii compilate ale lui header.asp sunt mentinute in memorie. IIS 5 a implementat un management imbunatatit al memoriei dar numai programatorii care utilizeaza Windows 2000 il pot utiliza. Windows NT 4.0 nu poate rula IIS 5. Acest lucru inseamna ca majoritatea serverelor IIS sunt obligate sa utilizeze acest model inferior de management al memoriei.
Spre deosebire de ASP, PHP include doar fisierele de care are nevoie, acest lucru ducand la un management net superior al memoriei
3. Nu exista costuri ascunse cu PHP
Dupa achizitionarea ASP poate aparea urmatoarea situatie. Daca este nevoie de o functie de criptare trebuie achizitionat ASPEncrypt. Daca este nevoie de functii de administrare de posta electronica trebuie achizitionat ServerObject's QMail.etc
Toate aceste functii sunt incluse in PHP si pe deasupra sunt gratuite.
4. MySQL are o compatibilitate sporita cu PHP
PHP-ul se preteaza a fi integrat impreuna cu MySQL. Exista o multime de unelte PHP pentru crearea si intretinerea bazelor de date. Acest set de unelte este complet in comparatii cu alte baze de date. Exista de asemenea functii deosebit de utile ca mysql_insert_id si mysql_affected_rows care nu sunt valabile pentru alte produse de baze de date.
ASP si PHP sunt amandoua solutii foarte bune in cea ce priveste site-urile Web de dimensiune medie. Cu ce face ca PHP-ul sa iasa in evidenta este o mai stransa integrare cu MySQL. MySQL este de asemenea potrivit pentru site-urile de dimensiune medie unde selectia si transmiterea datelor este mult mai importanta decat suportul tranzactiei. Acest suport permite programatorului sa sincronizeze modificarile in diferite tabele, fapt care in majoritatea site-urilor Web nu este necesara.
Cand comparam bazele de date, Microsoft Access este mult mai incet decat MySQL. SQL Server 7 si Oracle sunt mai rapide si mult mai expresive, dar nu suporta tranzactii.
5. Este mai aproape ca stil de programare de Java/C++
PHP are de asemenea un bun suport pentru programarea pe baza de module, in clase. Utilizarea de clase este in continuare rara la VBScript datorita trecutului VBScript-ului. Trecutul comun al PHP cu Java si C++ asigura un numar mare de programatori care utilizeaza clasele tot timpul.
PHP va rula de 5 pana de 20 de ori mai repede ca Java. Este usor de utilizat si cu ajutorul lui se pot realiza aplicatii Web/comert electronic foarte complicate intr-un interval de timp relativ scurt.
Este o aplicatie orientata pe obiect care a luat ce este mai interesant de la Java, PERL si C. PHP poate fi compilat , optimizat si facut sa ruleze si mai repede utilizand ZEND Optimizer. ZEND Optimizer este integrat cu PHP in versiunea PHP 4.0.
In mod normal trebuie utilizat pentru o aplicatie de e-commerce o combinatie de cod PHP(70%) , cu cod HTML/DHTML/XML (25%) si cu cod Javascript(5%).
Limitarile PHP
PHP nu este 100% un limbaj de programare a scripturilor orientat pe obiecte. De asemenea se recomanda sa nu se depaseasca o lungime de 300 000 linii a codului sursa. Intretinerea unui cod PHP mai mare de 100 000 de linii devine foarte dificila.
PHP nu va realiza performantele altor limbaje ca C si C++. Deoarece este un limbaj de programare a scripturilor si este si un interpretor el este un pic mai incet ca si programele C++ optimizate. ZEND optimizer din PHP 4 va creste in oarecare masura performantele PHP.
Avantajele PHP
Este foarte usor de dezvoltat o aplicatie Web in PHP. Aplicatiile PHP sunt deosebit de stabile si nu depind de tehnologia browserului spre deosebire de aplicatiile Javascript care depind de browser. PHP acorda libertatea de a alege platforma server si browserul dorit. Aceasta deoarece PHP genereaza in mod automat cod HTML care poate fi interpretat de orice browser.
PHP are o foarte buna conectivitate cu serverele de baze de date de tip SQL.
PHP suporta anumite aspecte ale programarii pe obiecte.
PHP are o sintaxa asemanatoare cu cea a lui C++, Perl, Javascript.
PHP are un Zend Optimizer care imbunatateste performantele.
PHP ruleaza atat pe platforma Unix cat si pe platforma Windows 95/98/2000/NT si este mult mai puternic ca si ASP sau JSP.
Fiind un proiect open-source, la dezvoltarea neincetata a PHP contribuie in permanenta un numar mare de programatori din intreaga lume.
1.1.4. Instalarea uneltelor folosite
In cazul instalarii acestor unelte sub Windows, procesul de instalare este mai simplu decat sub Linux. In ambele cazuri procesul de configurare este acelasi.
In ceea de urmeaza se va prezenta instalarea si configurarea MySql, PHP si Apache sub Windows.
Primul se va instala serverul bazei de date MySql. Instalarea acestuia decurge automat. Pentru configurarea acestuia se porneste winmysqladmin.exe in interiorul caruia se defineste un utilizator principal al bazelor de date si o parola pentru acesta.[9]
Urmatorul program instalat va fi PHP. Pentru acesta se va crea un director (pentru simplitate se recomanda C:PHP). Apoi se copiaza fisierul php.ini-dist in directorul Windows si se renumeste php.ini. Apoi acesta se editeaza pentru a indica catre directorul C:PHP. Apoi se copiaza fisierul php4ts.dll in directorul C:WindowsSystem. [8]
Dupa ce acesti pasi au fost parcursi, se trece la instalarea Apache. Procesul de instalare este si in acest caz automat, in afara de cazul in care se doreste instalarea unor componente suplimentare, caz in care trebuie recompilat codul sursa impreuna cu aceste componente. Dupa instalare trebuie editat fisierul httpd.conf pentru a stabili care va fi directorul in care vor fi amplasate fisierele disponibile clientilor, si de asemenea se adauga directionarile catre PHP:
ScriptAlias /php/ 'c:/php/'
AddType application/x-httpd-php .php
Action application/x-httpd-php '/php/php.exe"
Dupa aceasta se lanseaza comanda: Net start Apache si din acest moment procesul de instalare si configurare este incheiat.
1.1.5. Modul de functionare in comun al setului Apache, Php, MySql
Pentru o mai buna intelegere a modului de functionare a acestor unelte se va descrie exemplul din figura urmatoare:
Figura 2 Modul de functionare a software-ului aplicatiei
Utilizatorul introduce in browser o adresa de Web. Browserul de Web trimite o cerere catre http://localhost/index.php
Serverul de Web Apache primeste cererea pentru index.php. Dupa ce observa ca fisierul solicitat este un fisier .php, el va transmite fisierul interpretorului PHP
index.php este un script care contine comenzi. Una dintre aceste comenzi este aceea de a deschide o conexiune catre baza de date si de a extrage date din ea. PHP realizeaza conexiunea si transmite catre MySql cererile de extrageri de date.
Serverul bazei de date primeste cererea de conectare a interpretorului PHP si proceseaza cererea. Aceasta cerere poate fi o comanda de selectie, o creare de tabel , etc.
MySql trimite apoi raspunsul si rezultatele interpretorului PHP
Apache transmite informatia PHP inapoi browserului, ca un raspuns la cererea facuta. Astfel, utilizatorul va vedea o pagina care va contine informatiile solicitate.
Daca cererea ar fi fost facuta pentru https://localhost/index.php, procesul ar fi fost putin diferit, dupa se va explica mai jos:
Fiecare cerere si raspuns este criptata si decriptata la ambele capete. Browserul se conecteaza la Apache, obtine cheia sa de criptare, cripteaza cererea si o transmite.
Serverul primeste cererea, o decripteaza si o autentifica. Proceseaza fisierul, il cripteaza si il transmite. Browserul o decripteaza apoi cu cheia serverului.
Deoarece conexiunile sunt criptate, se folosesc porturi diferite. Portul 80 se foloseste pentru legaturi nesigure, pe cand pentru legaturi sigure se foloseste portul 443.