0
Programare Web PHP – prezentare generala Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Ia...
<ul><li>PHP ( PHP: Hypertext Preprocessor ) </li></ul><ul><ul><li>Evolutie </li></ul></ul><ul><ul><li>Caracterizare </li><...
<ul><li>Personal Home Page Tools   ( 1994-1995 ) –  Rasmus Lerdorf </li></ul><ul><li>PHP/FI 2.0  ( 1995 ) </li></ul><ul><l...
<ul><li>Limbaj de programare de tip  script , interpretat, direct accesibil in cadrul documentelor HTML  </li></ul><ul><li...
<ul><li>Maniera de functionare a procesorului ( engine -ului) PHP </li></ul>php | caracterizare
<ul><li>Faciliteaza interactiunea cu utilizatorul  (formulare Web,  cookie -uri, sesiuni,  integrare cu serverul Apache et...
<ul><li>Scripturi PHP introduse prin: </li></ul><ul><li><?  echo (&quot;Salut! 
&quot;);  /* simplu, nu? */   ?> </li></ul...
<ul><li>Variabile create “din zbor”  </li></ul><ul><li>Tipuri scalare:  integer ,  double ,  boolean ,  string   </li></ul...
<ul><li>Structuri de control – similare celor din C  ( if ,  switch ,  while ,  do ,  for ,  break ,  continue ) if  (!$nu...
<ul><li><?php </li></ul><ul><li>// umplem un tablou cu valori de la 1 la 10 </li></ul><ul><li>for  ($contor = 1; $contor <...
php | caracterizare <ul><li>Invocarea (rularea) programului PHP  direct din linia de comanda: </li></ul><ul><ul><li>Salvam...
php | caracterizare <ul><li>Invocarea (rularea) programului PHP folosind tehnologiile Web: </li></ul><ul><ul><li>Plasam fi...
<ul><li>Constante predefinite:  PHP_VERSION ,  CHAR_MAX ,… </li></ul><ul><li>Operatori – ca si cei din limbajul C/Perl ( e...
<ul><li><?php </li></ul><ul><li>function  patrat ($numar) {  // functia de ridicare la patrat </li></ul><ul><li>return  $n...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>matematice </li></ul></ul><ul><ul><li>de conversie </li></...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>matematice </li></ul></ul><ul><ul><ul><li>abs(), mod(), fm...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a sirurilor de caractere </li></ul></ul><ul>...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a tablourilor </li></ul></ul><ul><ul><ul><li...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a caracterelor </li></ul></ul><ul><ul><ul><l...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>privitoare la timp & data </li></ul></ul><ul><ul><ul><li>g...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>privitoare la fisiere/directoare  </li></ul></ul><ul><ul><...
<ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a URL-urilor  </li></ul></ul><ul><ul><ul><li...
<ul><li>Alte facilitati: </li></ul><ul><ul><li>SPL  ( Standard PHP Library ) – acces la metode standard de prelucrare a da...
<ul><li>Datele transmite de client (browser)  se regasesc in tablouri asociative predefinite (si globale): </li></ul><ul><...
<ul><li>Alte variabile globale utile: </li></ul><ul><ul><li>$_SERVER[]  – datele oferite de serverul Web </li></ul></ul><u...
<ul><li>Formularul Web: </li></ul><ul><li><form action=&quot; afiseaza.php &quot; method=&quot;post&quot;>  </li></ul><ul>...
<ul><li>Programare obiectuala – incapsularea </li></ul><ul><ul><li><?php </li></ul></ul><ul><ul><li>class   Student  {  //...
<ul><li>Programare obiectuala – mostenirea </li></ul><ul><ul><li>class StudentDestept  extends  Student { </li></ul></ul><...
<ul><li>Programare obiectuala – constructori </li></ul><ul><ul><li>class Student { </li></ul></ul><ul><ul><li>var $an, $nu...
<ul><li>Functii de manipulare a claselor si obiectelor </li></ul><ul><ul><li>get_class()  va returna numele unui obiect,  ...
<ul><li>Programare obiectuala – PHP 5 </li></ul><ul><ul><li>Constructorii sunt numiti  __construct() </li></ul></ul><ul><u...
<ul><li>Programare obiectuala – PHP 5 </li></ul><ul><li>class Student {  // clasa privitoare la un student  </li></ul><ul>...
<ul><li>Programare obiectuala – PHP 5 </li></ul><ul><li>// folosim introspectia </li></ul><ul><li>// cream o instanta a cl...
<ul><li>Apache2Triad ,  EasyPHP  &  XAMPP  – medii pre-configurate de dezvoltare Web (Apache, PHP, MySQL,…) </li></ul><ul>...
<ul><li>T. Anghel,  Programarea in PHP ,  Polirom, 2005 </li></ul><ul><li>S. Buraga (coord.),  Aplicatii Web la cheie ,  P...
<ul><li>Situl PHP oficial :  www.php.net/ </li></ul><ul><li>PHP Builder :  www.phpbuilder.com/ </li></ul><ul><li>PHP Class...
<ul><li>PHP ( PHP: Hypertext Preprocessor ) </li></ul><ul><ul><li>Evolutie </li></ul></ul><ul><ul><li>Caracterizare </li><...
<ul><li>Intrebari…? </li></ul>
Upcoming SlideShare
Loading in...5
×

Programare Web - PHP (o prezentare generala)

9,837

Published on

Overview of PHP language and main characteristics, including built-in functions, facilities, and resources.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,837
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
230
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Programare Web - PHP (o prezentare generala)"

  1. 1. Programare Web PHP – prezentare generala Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/
  2. 2. <ul><li>PHP ( PHP: Hypertext Preprocessor ) </li></ul><ul><ul><li>Evolutie </li></ul></ul><ul><ul><li>Caracterizare </li></ul></ul><ul><ul><li>Interactiunea cu utilizatorul </li></ul></ul><ul><ul><li>Programare obiectuala in PHP </li></ul></ul><ul><ul><li>Instrumente & resurse </li></ul></ul>cuprins
  3. 3. <ul><li>Personal Home Page Tools ( 1994-1995 ) – Rasmus Lerdorf </li></ul><ul><li>PHP/FI 2.0 ( 1995 ) </li></ul><ul><li>PHP 3 ( 1998 ) Zeev Suraski & Andi Gutmans </li></ul><ul><li>PHP 4 ( 2000 ) motor de scriptare Zend </li></ul><ul><li>PHP 4.3 ( 2002-2003 ) motor de scriptare Zend 2.0 </li></ul><ul><li>PHP 5 ( 2004 ) multe facilitati inspirate din Java </li></ul><ul><li>PHP 6 ( in dezvoltare ) </li></ul>php | istoric
  4. 4. <ul><li>Limbaj de programare de tip script , interpretat, direct accesibil in cadrul documentelor HTML </li></ul><ul><li>Procedural, oferind si suport pentru programarea orientata-obiect </li></ul><ul><li>Sintaxa inspirata de C/C++ si Perl (mai nou, si de Java) – case sensitive </li></ul><ul><li>Disponibil gratuit ( open source ) pentru diverse platforme (UNIX/Linux, Windows, Mac OS X) si servere Web (Apache, IIS,…) </li></ul><ul><li>Paginile incluzind cod PHP au extensia .php (in trecut .php3 , .phtml ) </li></ul>php | caracterizare
  5. 5. <ul><li>Maniera de functionare a procesorului ( engine -ului) PHP </li></ul>php | caracterizare
  6. 6. <ul><li>Faciliteaza interactiunea cu utilizatorul (formulare Web, cookie -uri, sesiuni, integrare cu serverul Apache etc.) </li></ul><ul><li>Suport pentru manipularea bazelor de date (MySQL, ODBC, Oracle, PostgreSQL, SQLite,…) </li></ul><ul><li>Procesarea continutului resurselor (tipuri de arhive, PDF, fisiere grafice, certificate digitale,…) </li></ul><ul><li>Suport pentru tehnologiile XML (procesari SAX, DOM, simplificate; transformari, validari; servicii Web etc.) </li></ul><ul><li>Include extensii (module) diverse </li></ul><ul><li>Documentatia oficiala: www.php.net/docs.php </li></ul>php | caracterizare
  7. 7. <ul><li>Scripturi PHP introduse prin: </li></ul><ul><li><? echo (&quot;Salut! &quot;); /* simplu, nu? */ ?> </li></ul><ul><li><?php echo(&quot;In cazul documentelor XML. &quot;); </li></ul><ul><li>?> </li></ul><ul><li><script language=&quot;php&quot;> </li></ul><ul><li>echo (&quot;...&quot;); </li></ul><ul><li></script> </li></ul><ul><li><% echo (&quot;Tag-uri in stilul ASP&quot;); %> </li></ul>php | caracterizare De folosit
  8. 8. <ul><li>Variabile create “din zbor” </li></ul><ul><li>Tipuri scalare: integer , double , boolean , string </li></ul><ul><li>Tipuri complexe: tablouri (indexate/asociative) & obiecte </li></ul><ul><li>Tipuri speciale: resursa, referinta, nul ( NULL ) $ani = 33; /* o variabila obisnuita */ $conectat = TRUE; # variabila logica $prefer[&quot;culoare&quot;] = &quot;gri&quot;; // tablou asociativ </li></ul>php | caracterizare
  9. 9. <ul><li>Structuri de control – similare celor din C ( if , switch , while , do , for , break , continue ) if (!$nume) { echo ( &quot; Nu ati precizat numele! &quot; ); } else { echo ( &quot; Bine ai venit, &quot; . $nume . &quot;! &quot; ); } </li></ul>php | caracterizare
  10. 10. <ul><li><?php </li></ul><ul><li>// umplem un tablou cu valori de la 1 la 10 </li></ul><ul><li>for ($contor = 1; $contor <= 10; $contor++) { </li></ul><ul><li>$valori[$contor] = $contor; </li></ul><ul><li>} </li></ul><ul><li>// realizam suma valorilor </li></ul><ul><li>$suma = 0; </li></ul><ul><li>foreach ($valori as $element) </li></ul><ul><li>$suma += $element; </li></ul><ul><li>// afisam suma obtinute la iesirea standard </li></ul><ul><li>// pentru a fi trimisa browserului </li></ul><ul><li>echo (&quot;<p>Suma de la 1 la 10 este: <em>&quot; . $suma . &quot;</em></p>&quot;); </li></ul><ul><li>?> </li></ul>php | caracterizare
  11. 11. php | caracterizare <ul><li>Invocarea (rularea) programului PHP direct din linia de comanda: </li></ul><ul><ul><li>Salvam codul intr-un fisier text .php valori.php </li></ul></ul><ul><ul><li>Apelam interpretorul PHP din linia de comanda </li></ul></ul>
  12. 12. php | caracterizare <ul><li>Invocarea (rularea) programului PHP folosind tehnologiile Web: </li></ul><ul><ul><li>Plasam fisierul intr-un director al serverului Web </li></ul></ul><ul><ul><li>Din browser, indicam URL-ul catre program pentru a-l invoca via HTTP </li></ul></ul>Rezultatul generat de script
  13. 13. <ul><li>Constante predefinite: PHP_VERSION , CHAR_MAX ,… </li></ul><ul><li>Operatori – ca si cei din limbajul C/Perl ( e.g. , concatenarea sirurilor cu “ . ”) </li></ul><ul><li>Functii-utilizator: function  trimite_mesaj ( $from=&quot;&quot;, $to=&quot;&quot;, $subject=&quot;Web&quot;)  { // corp… } </li></ul>php | caracterizare Parametri cu valori implicite
  14. 14. <ul><li><?php </li></ul><ul><li>function patrat ($numar) { // functia de ridicare la patrat </li></ul><ul><li>return $numar * $numar; </li></ul><ul><li>} </li></ul><ul><li>$numar = 0; </li></ul><ul><li>while ($numar < 10) { </li></ul><ul><li>$numar++; // incrementam numarul </li></ul><ul><li>if ($numar % 2) // e numar impar... </li></ul><ul><li>continue ; // continuam cu urmatoarea iteratie </li></ul><ul><li>// e numar par, deci afisam patratul </li></ul><ul><li>echo &quot;<p>$numar la patrat este &quot; . patrat($numar) . &quot;</p>&quot;; </li></ul><ul><li>} // final de while </li></ul><ul><li>?> </li></ul>php | caracterizare
  15. 15. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>matematice </li></ul></ul><ul><ul><li>de conversie </li></ul></ul><ul><ul><li>de manipulare a sirurilor de caractere </li></ul></ul><ul><ul><li>de prelucrare a tablourilor </li></ul></ul><ul><ul><li>de acces la resurse si de lucru cu fisiere </li></ul></ul><ul><ul><li>de manipulare a bazelor de date </li></ul></ul><ul><ul><li>privitoare la conexiunile de retea </li></ul></ul><ul><ul><li>pentru accesarea resurselor XML, PDF, JPEG,... </li></ul></ul><ul><ul><li>specifice sistemului de operare </li></ul></ul><ul><ul><li>generale </li></ul></ul>php | caracterizare
  16. 16. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>matematice </li></ul></ul><ul><ul><ul><li>abs(), mod(), fmod() </li></ul></ul></ul><ul><ul><ul><li>ceil(), floor(), round(), max(), min() </li></ul></ul></ul><ul><ul><ul><li>exp(), log10(), log() </li></ul></ul></ul><ul><ul><ul><li>pow(), sqrt() </li></ul></ul></ul><ul><ul><ul><li>sin(), cos(), tan(), asin(), …, sinh(), …, pi() </li></ul></ul></ul><ul><ul><ul><li>rand(), srand() </li></ul></ul></ul><ul><ul><ul><li>bindec(), octdec(), dechex(),…, base_convert() </li></ul></ul></ul><ul><ul><ul><li>is_finite(), is_infinite(), is_nan() </li></ul></ul></ul>php | caracterizare
  17. 17. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a sirurilor de caractere </li></ul></ul><ul><ul><ul><li>echo(), print(), printf(), sprintf() etc. </li></ul></ul></ul><ul><ul><ul><li>strlen(), chr(), ord(), substr(), strstr(), strpos(),… </li></ul></ul></ul><ul><ul><ul><li>strcmp(), strcasecmp(), strnatcmp() etc. </li></ul></ul></ul><ul><ul><ul><li>strcat(), str_repeat(), str_replace(), str_ireplace(), strrev() </li></ul></ul></ul><ul><ul><ul><li>trim(), ltrim(), rtrim() </li></ul></ul></ul><ul><ul><ul><li>explode(), implode(), split(), join(), strtok() </li></ul></ul></ul><ul><ul><ul><li>nl2br(), htmlentities(), htmlspecialchars(), strip_tags(),… </li></ul></ul></ul>php | caracterizare
  18. 18. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a tablourilor </li></ul></ul><ul><ul><ul><li>array_count_values(), array_search(), array_filter(), array_slice(), array_chunk() </li></ul></ul></ul><ul><ul><ul><li>array_fill(), array_combine(), array_shift(), array_reverse(), array_multisort(), array_sum(),… </li></ul></ul></ul><ul><ul><ul><li>array_merge(), array_intersect(), array_diff() </li></ul></ul></ul><ul><ul><ul><li>array_keys(), array_key_exists() </li></ul></ul></ul><ul><ul><ul><li>array_push(), array_pop() </li></ul></ul></ul>php | caracterizare
  19. 19. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a caracterelor </li></ul></ul><ul><ul><ul><li>ctype_digit(), ctype_xdigit(), ctype_print(), ctype_punct(), ctype_space(),… </li></ul></ul></ul><ul><ul><ul><li>ctype_alpha(), ctype_alnum(), ctype_lower(), ctype_upper() </li></ul></ul></ul>php | caracterizare
  20. 20. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>privitoare la timp & data </li></ul></ul><ul><ul><ul><li>getdate(), localtime(), gettimeofday(), time() etc. </li></ul></ul></ul><ul><ul><ul><li>date(), idate(), gmdate(),… </li></ul></ul></ul><ul><ul><ul><li>checkdate() </li></ul></ul></ul><ul><ul><ul><li>strftime(), strtotime() </li></ul></ul></ul>php | caracterizare
  21. 21. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>privitoare la fisiere/directoare </li></ul></ul><ul><ul><ul><li>Folosind tipul de date FILE: fopen(), fread(), fscanf(), fgets(), fwrite(), fprintf(), fseek(), ftell(), feof(), fclose(), ftruncate(), fstat(), flock() </li></ul></ul></ul><ul><ul><ul><li>file(), copy(), rename(), delete(), move_uploaded_file(), tmpfile() </li></ul></ul></ul><ul><ul><ul><li>file_exists(), filesize(), filetype(), fileperms(),…, stat() </li></ul></ul></ul><ul><ul><ul><li>is_dir(), is_file(), is_readable(), is_writeable(),… </li></ul></ul></ul><ul><ul><ul><li>chdir(), mkdir(), rmdir() </li></ul></ul></ul><ul><ul><ul><li>disk_free_space(), disk_total_space() </li></ul></ul></ul>php | caracterizare
  22. 22. <ul><li>Functii predefinite ( built-in ): </li></ul><ul><ul><li>de manipulare a URL-urilor </li></ul></ul><ul><ul><ul><li>urldecode(), urlencode(), parse_url() </li></ul></ul></ul><ul><ul><ul><li>base64_decode(), base64_encode() </li></ul></ul></ul><ul><ul><li>privitoare la variabilele PHP </li></ul></ul><ul><ul><ul><li>is_bool(), is_int(), is_float(),…, is_array(), is_null(), is_resource(), is_scalar(), is_string() </li></ul></ul></ul><ul><ul><ul><li>gettype(), settype() </li></ul></ul></ul><ul><ul><ul><li>empty(), isset(), unset() </li></ul></ul></ul><ul><ul><ul><li>strval(), print_r(), var_dump() </li></ul></ul></ul><ul><ul><ul><li>serialize(), unserialize() </li></ul></ul></ul>php | caracterizare
  23. 23. <ul><li>Alte facilitati: </li></ul><ul><ul><li>SPL ( Standard PHP Library ) – acces la metode standard de prelucrare a datelor </li></ul></ul><ul><ul><li>Rularea din linie de comanda: PHP CLI ( Command Line Interface ) sau ca modul Apache </li></ul></ul><ul><ul><li>Crearea de interfete grafice (aplicatii desktop ): PHP-GTK – http://gtk.php.net/ </li></ul></ul><ul><ul><li>Inter-conectivitatea cu alte platforme (COM, Flash, Java, .NET,) </li></ul></ul><ul><ul><li>Suport pentru Internet/Web (FTP, HTTP, IMAP, LDAP, NNTP, POP3, SNMP, SOAP, XML-RPC ) </li></ul></ul>php | caracterizare
  24. 24. <ul><li>Datele transmite de client (browser) se regasesc in tablouri asociative predefinite (si globale): </li></ul><ul><ul><li>$_GET[] – datele transmise prin GET </li></ul></ul><ul><ul><li>$_POST[] – datele transmise prin POST </li></ul></ul><ul><ul><li>$_COOKIE[] – cookie -urile receptate </li></ul></ul><ul><ul><li>$_REQUEST[] – datele primite de la client (continutul lui $_GET , $_POST si $_COOKIE ) </li></ul></ul><ul><ul><li>$_SESSION[] – datele de tip sesiune </li></ul></ul>php | interactiune web
  25. 25. <ul><li>Alte variabile globale utile: </li></ul><ul><ul><li>$_SERVER[] – datele oferite de serverul Web </li></ul></ul><ul><ul><ul><li>$_SERVER['PHP_SELF'] numele scriptului PHP </li></ul></ul></ul><ul><ul><li>$_ENV[] – datele oferite de mediu ( environment ) </li></ul></ul><ul><ul><li>$_FILES[] – datele despre fisierele primite prin upload </li></ul></ul>php | interactiune web
  26. 26. <ul><li>Formularul Web: </li></ul><ul><li><form action=&quot; afiseaza.php &quot; method=&quot;post&quot;> </li></ul><ul><li><input type=&quot;text&quot; name=&quot; nume &quot; /> </li></ul><ul><li><input type=&quot;text&quot; name=&quot;virsta&quot; /> </li></ul><ul><li><input type=&quot;submit“ value=&quot;Trimite&quot; /> </li></ul><ul><li></form> </li></ul><ul><li>Scriptul afiseaza.php : </li></ul><ul><li><?php if (!$_REQUEST[&quot; nume &quot;]) { </li></ul><ul><li>?> </li></ul><ul><li><p style=&quot;color: red&quot;>Nu ati specificat numele!</p> </li></ul><ul><li><?php } else { </li></ul><ul><li>echo (“Numele este “ . $_REQUEST[“ nume ”]); </li></ul><ul><li>} </li></ul><ul><li>?> </li></ul>php | interactiune web
  27. 27. <ul><li>Programare obiectuala – incapsularea </li></ul><ul><ul><li><?php </li></ul></ul><ul><ul><li>class Student { // specificarea unei clase </li></ul></ul><ul><ul><li>var $ an ; </li></ul></ul><ul><ul><li>var $ nume ; </li></ul></ul><ul><ul><li>var $ email ; </li></ul></ul><ul><ul><li>// metode </li></ul></ul><ul><ul><li>function seteazaAn ($un_an) { $this->an = $un_an; } </li></ul></ul><ul><ul><li>function furnizeazaAn () { return $this->an; } </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>$stud = new Student ; // instantierea unui obiect </li></ul></ul><ul><ul><li>?> </li></ul></ul>php | obiecte Se pot accesa direct, nefiind privati in PHP4
  28. 28. <ul><li>Programare obiectuala – mostenirea </li></ul><ul><ul><li>class StudentDestept extends Student { </li></ul></ul><ul><ul><li>var $ note ; // notele obtinute (data membru) </li></ul></ul><ul><ul><li>// metode </li></ul></ul><ul><ul><li>function seteazaNote ($n) { $this->note = (array) $n; } </li></ul></ul><ul><ul><li>function furnizeazaNote () { return (array) $this->note; } </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>$alt_stud = new StudentDestept; </li></ul></ul><ul><ul><li>$alt_stud-> seteazaAn (2); // apel de metodă din clasa de bază </li></ul></ul><ul><ul><li>$alt_stud-> seteazaNote ($niste_note); // apel de metodă din clasa derivată </li></ul></ul>php | obiecte
  29. 29. <ul><li>Programare obiectuala – constructori </li></ul><ul><ul><li>class Student { </li></ul></ul><ul><ul><li>var $an, $nume, $email; // date-membru </li></ul></ul><ul><ul><li>function Student ($a, $n, $e = '') { // constructor </li></ul></ul><ul><ul><li>$this->an = $a; </li></ul></ul><ul><ul><li>$this->nume = $n; </li></ul></ul><ul><ul><li>$this->email = $e; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>// alte metode… </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>$stud = new Student (2, &quot;Cristian Vrabie&quot;); </li></ul></ul><ul><li>Destructori nu exista in PHP 4 </li></ul>php | obiecte
  30. 30. <ul><li>Functii de manipulare a claselor si obiectelor </li></ul><ul><ul><li>get_class() va returna numele unui obiect, instanţă a unei clase </li></ul></ul><ul><ul><li>get_parent_class() furnizează clasa părinte din care provine un anumit obiect </li></ul></ul><ul><ul><li>method_exists() testează dacă există o metodă pentru un anumit obiect specificat </li></ul></ul><ul><ul><li>class_exists() testează existenţa unei clase </li></ul></ul><ul><ul><li>is_subclass_of() va determina existenţa unei relaţii de moştenire dintre două clase </li></ul></ul>php | obiecte
  31. 31. <ul><li>Programare obiectuala – PHP 5 </li></ul><ul><ul><li>Constructorii sunt numiti __construct() </li></ul></ul><ul><ul><li>Destructorii sunt denumiti __destruct() </li></ul></ul><ul><ul><li>Accesul la clasa parinte parent:: </li></ul></ul><ul><ul><li>Membrii pot fi publici ( public ), privati ( private ) sau protejati ( protected ) </li></ul></ul><ul><ul><li>Se permit clase/metode abstracte: abstract </li></ul></ul><ul><ul><li>Obiectele pot fi “clonate” via clone </li></ul></ul><ul><ul><li>Obiectele pot fi comparate folosind === </li></ul></ul><ul><ul><li>Pot fi declarate si interfete (in stilul Java) </li></ul></ul><ul><ul><li>Se permite si introspectia via clasa Reflection </li></ul></ul>php | obiecte
  32. 32. <ul><li>Programare obiectuala – PHP 5 </li></ul><ul><li>class Student { // clasa privitoare la un student </li></ul><ul><li>private $an; // date-membru (private/publice) </li></ul><ul><li>public $nume; </li></ul><ul><li>public $email; </li></ul><ul><li>// constructor (in stilul nou) </li></ul><ul><li>function __construct ($a = 1, $n = '', $e = '') { </li></ul><ul><li>$this->an = $a; </li></ul><ul><li>$this->nume = $n; </li></ul><ul><li>$this->email = $e; </li></ul><ul><li>} </li></ul><ul><li>function __destruct() { // destructor </li></ul><ul><li>print '<p>L-am distrus pe ' . $this->nume . '!</p>'; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>php | obiecte
  33. 33. <ul><li>Programare obiectuala – PHP 5 </li></ul><ul><li>// folosim introspectia </li></ul><ul><li>// cream o instanta a clasei predefinite ReflectionClass </li></ul><ul><li>$clasa = new ReflectionClass ('StudentDestept'); </li></ul><ul><li>// afisam informatii despre clasa specificata </li></ul><ul><li>printf(&quot;<p>Clasa <em>%s</em> extinde %s si e declarata in fisierul <tt>%s</tt>.</p>&quot;, $clasa-> getName (), var_export ($clasa-> getParentClass (), 1), $clasa-> getFileName () </li></ul><ul><li>); </li></ul>php | obiecte
  34. 34. <ul><li>Apache2Triad , EasyPHP & XAMPP – medii pre-configurate de dezvoltare Web (Apache, PHP, MySQL,…) </li></ul><ul><li>PHPMyAdmin – aplicatie Web scrisa in PHP pentru administrarea facila a bazelor de date MySQL </li></ul><ul><li>Smarty – faciliteaza realizarea de template -uri de redare a continutului Web </li></ul><ul><li>PEAR ( PHP Extension and Application Repository ) – clase/module care extind functionalitatile PHP: http://pear.php.net/ </li></ul><ul><li>PHP Designer – editor Web avansat </li></ul><ul><li>Zend Studio – platforma comerciala de dezvoltare a aplicatiilor PHP de anvergura </li></ul><ul><li>PRADO – framework PHP5 permitind interactiuni Web conduse de evenimente in stilul .NET </li></ul><ul><li>JPSpan & Xajax – framework -uri PHP pentru AJAX </li></ul>php | instrumente
  35. 35. <ul><li>T. Anghel, Programarea in PHP , Polirom, 2005 </li></ul><ul><li>S. Buraga (coord.), Aplicatii Web la cheie , Polirom, 2003 </li></ul><ul><li>S. Buraga (coord.), Situri Web la cheie , Polirom, 2004 </li></ul><ul><li>S. Buraga, Tehnologii XML , Polirom, 2006 </li></ul><ul><li>L. Alboaie, S. Buraga, Servicii Web , Polirom, 2006 </li></ul>resurse
  36. 36. <ul><li>Situl PHP oficial : www.php.net/ </li></ul><ul><li>PHP Builder : www.phpbuilder.com/ </li></ul><ul><li>PHP Classes : www.phpclasses.org/ </li></ul><ul><li>PHP Developer : www.phpdeveloper.org/ </li></ul><ul><li>PHP Freaks : www.phpfreaks.com/ </li></ul><ul><li>Zend : www.zend.com/ </li></ul>resurse
  37. 37. <ul><li>PHP ( PHP: Hypertext Preprocessor ) </li></ul><ul><ul><li>Evolutie </li></ul></ul><ul><ul><li>Caracterizare </li></ul></ul><ul><ul><li>Programare obiectuala in PHP </li></ul></ul><ul><ul><li>Interactiunea cu utilizatorul </li></ul></ul><ul><ul><li>Instrumente & resurse </li></ul></ul>rezumat
  38. 38. <ul><li>Intrebari…? </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×