-
Ca sa faci o aplicatie web in general ai nevoie de o baza de date. La scoala in general invatam ca “baza de date este administrata de administratorul bazei de date”. Teoretic asa ar trebui sa se intample, practic… ajungem sa ne facem singuri bazele de date de cele mai multe ori.
PHP este folosit in general cu un SGBD (Sistem de Gestiune al Bazelor de Date), de obicei aceasta este MySQL. Atunci cand o aplicatie incepe sa mearga greu in general se cauta metode de optimizare incepand de la reducerea sau inlocuirea functiilor lente (de exemplu echo este mai rapida ca print sau nl2br($text) este mai rapida ca str_replace(“\r\n”,”
”,$text)) pana la reducerea numarului de cereri http (in loc de mai multe fisiere css se foloseste unul singur). Totusi un mod foarte simplu pe care foarte multi nu il iau in calcul este acela de a adauga un index pe tabela.Index-ul se adauga pe un camp pe care se fac sortari sau se pun conditii. Avantajul major este in momentul cand se extragi datele. Dezavantajul este atunci cand se introduc datele. Pe o tabela unde se fac modificari frecvent poate sa fie discutabila nevoia de un index, depinde de raportul de select-uri vs. insert-uri.
Cum se adauga un index:
1ALTER TABLE tabela SET INDEX(camp);Chiar zilele trecute aveam o interogate destul de greoaie pe mai multe tabele si nu intelegeam cum poate totusi sa mearga atat de greu. Am adaugat un index pe criteriul de filtrare si unul pe cel de ordonare iar in mai putin de 5 minute totul a devenit mult mai rapid, a devenit de 3 ori mai rapida interogarea (si nu am decat 2000 de inregistrari)!
Poate cateva milisecunde in plus nu par mare lucru, dar luati in calcul cateva zeci sau chiar sute de interogari pe o singura pagina, inmultiti cu numarul utilizatoriilor care acceseaza pagina simultan si… nu o sa mai apara atat de putin.
-
Trimiterea variabilelor GET este simpla, doar pui variabila in coada paginii ex: www.domeniu.ro?foo=bar. Dar cand vine vorba de variabile de tip POST treburile nu mai sunt usoare.
Din fericire PHP are o solutie pentru cam tot ce este nevoie, in acest caz cURL.
Problema: am nevoie sa trimit niste variabile POST catre un formular undeva pe net alaturi de un fisier, apoi trebuie sa prelucrez raspunsul.
Solutie:
-
avem nevoie sa ne asiguram ca extensia cURL este instalata, daca nu este instalata trebuie sa o instalam (mai multe detalii in manual).
-
trebuie sa stabilim ce variabile trebuie sa trimitem, sa luam ca exemplu variabilele “fisier” si “test”.
-
sa inceapa treaba:
1//calea catre fisier 2$file = "c:\htdocs\www\fisier.jpg"; 3 4// variabilele care le vom trimite 5$data = array("fisier" => "@$file", 6 "test"=>"valoare"); 7 8// se deschide o noua sesiune cURL 9$c = curl_init(); 10 11// destinatia unde este prelucrat formularul 12curl_setopt($c, CURLOPT_URL, 'http://www.domeniu.ro/fisier-prelucrare.php'); 13 14// metoda de trimitere a datelor 15curl_setopt($c, CURLOPT_POST, true); 16 17// datele de tip POST care se vor trimite 18curl_setopt($c, CURLOPT_POSTFIELDS, $data); 19 20// setare pentru ca rezultatul trimiterii sa fie intors intr-o variabila 21curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 22 23// aici se trimit efectiv datele 24$rezultat = curl_exec ($c); 25 26// se inchide sesiunea cURL 27curl_close ($c); 28 29// rezultatul trimiterii (ce va afisa pagina respectiva) se afisaza pe ecran 30echo $rezultat;La final se va afisa rezultatul transmis de pagina spre care au fost trimis datele.
Asta e tot, simplu nu?
-
-
M-am saturat, sunt mult prea multe limbaje de programare si scripting in ziua de azi.
De exemplu, daca vrei sa faci un site nu foarte complicat ai nevoie de:
- HTML
- CSS
- JavaScript
- PHP sau alt limbaj server-side.
Si totusi… aplicatiile web sunt totusi simple.
Poate o sa spuneti ca nu este o problema atat de mare pentru ca acestea au stuctura si “parinti” comuni.
Adevarat, sa incepem cu un limbaj cum este C (aparut in anul 1972). In anii “80 lumea avea sa cunoasca o noua abordare in lumea programarii, universul orientat obiect. Si a aparut C++ (1983). Totul era bine daca lucrurile ramaneau asa simple, dar nuu, a aparut si Objective C, un alt descendent obiectual (folosit de Apple in principal). Pentru ca lucrurile nu erau destul de “simple”, cei de la SUN s-au gandit sa faca un alt limbaj care avea sa fie obiectual in intregime. Si asa a venit pe lume Java. Microsoft au incercat sa preia acest limbaj dar din pricina unor probleme de licenta s-au hotarat sa faca limbajul lor mai bun si mai destept decat ce era deja pe piata. Iar dupa ceva vreme s-a nascut Fat-Frumos, sau C#. Si toate acestea pornind de la un singur limbaj…
Multi au impresia ca Pascal a murit undeva pe la finalul “80 inceputul “90, nu va inselati, dar inainte sa moara s-a transformat in Delphi, o versiune de Pascal orientata obiect.
Iar ca totul sa fie mai complicat, limbajul C# a fost proiectat de cel care a realizat compilatorul Turbo Pascal de la Borland.
Adevarul este ca nu s-a ajuns la un standard si nu cred ca se va ajunge prea curand, chiar daca majoritatea OS-urilor au la baza C.
Mi se pare inuman sa trebuiasca sa inveti atatea limbaje de programare, iar in functie de ce ai nevoie in general schimbi limbajul, iar daca schimbi OS-ul de cele mai multe ori trebuie sa schimbi si limbajul (mai putin la limbaje cum ar fi Java). Incep sa cred ca este mai bine ca un limbaj din trecut sa dispara, pana la urma limbaje precum Cobol (1959) inca se mai folosesc, iar mult mai tanarul Pascal s-a dovedit depasit.
Oricum atunci cand invatati un limbaj sa nu aveti impresia ca o sa ajungeti sa deveniti un expet universal in el, un limbaj simplu cum este PHP are posibilitati nebanuite de multi si chiar daca trecem cu vederea lucruri cum ar fi PHP-GTK si PHP-QT tot mai ramand o groaza de framework-uri si module optionale.
In cazul unui limbaj cum este C nici nu mai are rost sa vorbim, acesta poate sa fie folosit pentru aproape orice, incepand de la drivere pana la pagini web inclusiv serverele pe care acestea ruleaza.
Pana si limbaje de scripting care pana nu de mult erau considerate “de jucarie” cum este JavaScript, pana si acestea au posiblitati nebanuite astazi, de la pagini web, pana la plug-inuri FireFox si nu numai.
Chiar si cand vine vorba de office, MS Excel suporta VB Script, pe cand Open Office suporta JavaScript.
O data ce ai intrat pe fagasul acesta al programarii, ar trebui sa ai multa rabdare si pasiune, altfel nu o sa iesi prea bine…
-
Chiar daca PHP 6 nu este gata inca, sau mai bine zis mai are destul pana va ajunge la varianta finala, deja am gasit o carte dedicata noii versiuni avand titlul PHP 6 and MySQL 5 for Dynamic Web Sites: Visual QuickPro Guide.
Schimbarile care vor avea loc in cadrul PHP 6 sunt deja cunoscute, iar versiunea CVS este disponibila.
Avand in vedere cele de mai sus, se poate crede ca aceasta carte se grabeste sa anunte venirea, pentru ca cititorul sa aiba parte de o abordare a noii versiuni.
Am avut ocazia sa rasfoiesc versiunea in romana a cartii PHP si MySQL pentru site-uri WEB dinamice. Pe spatele cartii sunt bifate nivelurile “Incepator”, “Mediu” si “Avansat”. Cu toate acestea cartea pare mai mult o adaptare a cartii pentru versiunea 4 la versiunea 5, totusi fara a se atinge aproape de loc (sau chiar de loc) aspecte cum ar fi POO, XML, Streams sau abordari prea succinte pentru elemente complexe cum ar fi array-urile. Intradevar cartea nu se pierde in multe detalii iar la final exista prezentate cateva exemple concrete.
Pe Amazon.com se pot rasfoi cateva pagini din carte, din pacate editia precedenta chiar si catii de PHP 5 si se poate vedea ca nu au fost prea multe schimbari in cuprins cel putin, evitand abordari detaliate pentru subiecte care au constituit modificari majore intre versiuni.
Concluzionand eu unul nu ma astept decat la o carte adaptata usor la modificarile care au avut loc de la ultima versiune si nici de cum la o carte orientata spre noua versiune, gata sa evidentieze noile facilitati introduse (sau cele eliminate) in versiunea 6 a PHP. Probabil lansarea timpurie a cartii nu este decat o politica de marketing.