Service Service dezvoltarea (__) ( )___/ )___/ ______programare Oriented _ \ aplica (_) (_)(__) (_) (_)(__) _ )( ( )_( ) _ ( ) _ țiilor Web înțiilor PHP Architectures Web )___/ \

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ care nu „ Leonardo E mediocru ucenicul - ș i dep ăș e da ș te maestrul. Vinci ”

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ PHP strong phpng dezvoltat 5 ( 2004 typ suport  Personal Home Page HomeTools Personal ing PHP PHP ) de noi – , suport pentru pentru suport , varianta cea cea mai varianta recentă: pentru 6 7 facilit (actualmente abandonat) (actualmente ( 2015 Rasmus PHP PHP – ăț Zeev programare i ), inspirate 4 3 PHP ( ( Lerdorf Suraski 200 1998 Unicode 7.1 0 ) ) d (la final de obiectual & e Java , performanță, Andi ( 1995 PHP Gutmans ) ă 5.6 2016 ( 2014 ) … ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ poate fi inclus ofer Server de direct de tip ă un : limbaj caracterizare ș script i î n aplica cadrul , de interpretat programare ț documentelor ii Web HTML

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Limbajul pentru (obiectuală și, funcțională) mai recent, (obiectuală PHP alte paradigme altede programare php este : caracterizare procedural , oferind suport ș i

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Limbajul pentru poate poate șica fi folosit limbaj deuzgeneral (obiectuală și, funcțională) mai recent, (obiectuală PHP alte paradigme altede programare php este : caracterizare procedural , oferind suport ș i

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ S intax ă uzual inspirat , programele php ă de : caracterizare C, Perl PHPau ș i Java extensia – case sensitive . php

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ diverse Disponibil ș platforme i servere php gratuit Web: Apache Web: : www.zend.com (Linux www.php.net caracterizare – open source , Windows, , IIS , nginx macOS – pentru , … , UNIX )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Maniera Client Client Web de func HTML (reprezentare) (GET, POST,...) cerere ț ionare răspuns , PNG, HTTP SVG a ,... procesorului serverde aplicații aplicații PHP programe ServerWeb .php ( resurse (externe) engine  procesor  ( engine Zend - ului ) ) PHP )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Maniera diverse eventual, fi in pot Client Client Web extensii de func HTML (reprezentare) (GET, POST,...) cerere ț ( ionare răspuns module , tegrate PNG, HTTP SVG a ) ,... procesorului serverde aplicații aplicații PHP programe ServerWeb .php ( resurse (externe) engine  procesor  ( engine Zend - ului ) ) PHP )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ http:// Programul generând www http://www.phpinternalsbook.com .php.net/manual/en/internals php PHP e PHP e instrucțiuni ( instrucțiuni : caracterizare interpretat interpretat opcodes de ) 2 .opcodes.php interne / 2

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ extension ; precizarea extensiilor încărcate la inițializarea serverului de aplicații … session.name session.use_cookies allow_url_fopen upload_max_filesize file_uploads default_mimetype post_max_size memory_limit max_execution_time safe_mode precision … extension extension inclusiv =php_soap.dll =php_mysqli.dll =php_pdo_sqlite.dll = = 14 d = încărcarea extensiilor (biblioteci partajate partajate (biblioteci extensiilor încărcarea Off Off iverse = = On On = 128 PHPSESSID = 8 On On = " M se pot configura via fișierul via fișierul configura se pot M = = text/html" text/html" = ; se permite deschiderea de fișiere specificate printr ; ; dimensiunea maximă a datelor transmise prin metoda POST ; ; sunt permise ; 32 30 1 dimensiunea maximă a memoriei alocate unui script comportamente controlul controlul M php ; numele ; numele ; sesiunile Web vor recurge la ; dimensiunea ; dimensiunea maximă a unui fișier preluat de la client ; număr număr maxim de ; tipul ; tipul MIME implicit transmis de un script PHP preciziei proces : caracterizare upload cookie ării valorilor – - - uri de fișiere ului referitor la sesiunea Web http:// secunde secunde ale platformei PHPale platformei float float php.net/safe – privind execuția unui program detalii cookie php.ini - la mode - uri http://php.net/precision - un un URL , .so / .dll ), Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ declare // verificarea tipurilor strictă de date laPHP declare // setul decaractere ( ( strict_types encoding Maniera de rulare a programelor PHP deprogramelor Maniera rularea poate fi ajustată via directiva poate fi ajustată – eventual, lanivel de debloc cod ='ISO php folosit pentru pentru conținutului folosit generarea = 1 ); - 8859 : caracterizare - 1 '); 7 declare avansat –

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ utilizat se poate adopta HHVM ă de Pentru creșterea performanței, – Baidu HipHop php , Box, : www..com caracterizare Virtual Virtual compilarea Etsy , Facebook, Facebook, , Machine just (Facebook) Wikipedia - in avansat - time , …

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ preluarea valorilor câmpurilor valorilorpreluarea acces la variabile globale create create globale acces la variabile I nterac autentificarea autentificarea utilizatorului php ț : iunea caracterizare cookie sesiuni cu - uri utilizatorul formulare „ din zbor : lor Web ”

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ dezvoltare de servicii Web de serviciiSOAP și dezvoltare Web prin Facilitățipentru tehnologiile Web: suport pentru HTTP pentru suport php caching prelucrare de URL prelucrare : caracterizare … și altele via memcached – inclusiv inclusiv - uri cURL REST

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ www.phptherightway.com iODBC( Suport DBA Independent Open L php pentru PDO( ( DataBase Abstraction layer Abstraction DataBase la nivel abstract : PHP Data PHP Data caracterizare acces la /#databases_abstraction_layers DataBase Objects baze ) de Connectivity date: ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ a se parcurge relațional: DB relațional: Suport specific specific unui bazat pe pe NoSQL bazat http://www.phptherightway.com/#databases php 2 pentru , MySQL : caracterizare serverde baze dedate acces la , Oracle – e.g. , PostgreSQL, SQLite PostgreSQL, , , baze MongoDB de date: , …

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ imagini imagini documente XML documente fișiere audio P arhive r elucrarea – cu biblioteci: cu biblioteci: php de tipbzip – date via biblioteci: via biblioteci: documente documente – : cărți de con creare, procesare, validare etc. procesare, creare, caracterizare în format JSONîn format ț 2 inutului Cairo ... LZF, ZIP, ZLIB , RAR, credit , PDF GD ktaglib , EXIF resurselor , oggvorbis , ImageMagick : etc.

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Suport pentru resurse desistem + Internet: procese procese poștă electronică electronică poștă răspuns la evenimente la evenimente răspuns sisteme de fișiere, inclusiv FTP php – cu ...și altele ...și multe : libevent caracterizare socket – , pthreads - e.g. uri , IMAP, POP IMAP, , – via , Gearman Event 3 ,...

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ PHP ca dePHPlimbaj programare procedurală

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ php : tipuri de date tipuri TRUE boolean sau FALSE – scalare

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ în baza php 10 : tipuri de date tipuri valori întregi specificate specificate întregi valori sau 16 (hexa), (hexa), integer 8 (octal), – scalare 2 (binar)

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ reprezentate php : uzual conform uzual conform tipuri de date tipuri numere realenumere float IEEE IEEE 754 – scalare (dublă precizie (dublă )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ reprezentate funcții predefinite utile: predefinite funcții valoare specială specială valoare php : uzual conform uzual conform tipuri de date tipuri – numere realenumere constanta constanta float is_nan() IEEE IEEE NAN , 754 is_finite() – ( scalare not a number not a (dublă precizie (dublă , is_infinite() ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ca la C, pot fi folosite caractere caractere fifolosite ca laC,pot php (nu există există nativ pentruUnicode) (nu suport \ n : \ tipuri de date tipuri șiruri de caractere ASCII ASCII șiruri decaractere r \ t string \ e \ \ – escape scalare \ $ precum \ "

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ php un șir nu poate avea avea de poate mai mult un șirnu : tipuri de date tipuri delimitatori uzuali: uzuali: delimitatori string " sau ' – scalare 2 GB

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ php între tablouri indexate indexate și cele asociative între tablouri asociere tip) valori (deorice asociere între : și chei (de tip tipuri de date tipuri nu există o distincție clară o distincție există nu array integer sau – compuse string )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ $cadouri = (vector de valori)// unindexattablou [ (pentru PHP simplificată// sintaxa array // untablou " nume ( " " nume => php array asociativ " Tux " => : ", (" tipuri de date tipuri " trotineta " Tux dimensiune – perechi ", " dimensiune ", " ", laptop ( " array cheie => 5.4 ", " ", 17 , " +) valoare , minge => " oferta – 17 compuse , ", " ", ) " " oferta => topor TRUE " ") => ; TRUE ] ; );

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ php : tipuri de date tipuri creat cu operatorul operatorul creat cu instanță instanță clase a unei object – new compuse

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ e.g. detalii funcții predefinite: predefinite: funcții , resursa de tip resursa detip , și folosită de funcțiile și folosită de funcțiile php semnifică resursăexternă semnifică lao o referință o resursă e creată de funcții specifice creatădeo resursăe funcții la http : tipuri de date tipuri ://www.php.net/manual/en/resource.php stream is_resource resource fread() ini țiată () , , – feof() get_resource_type() de funcția de funcția speciale , fgets() etc. fopen()

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ reprezentând ovariabilă carenuarevaloare php : funcții utile: utile: funcții tipuri de date tipuri specifică valoarea valoarea specifică null is_null() și – NULL unset() speciale

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ $prefer[" $ $ conectat ani tipul tipul = convertirea automată ( convertireaautomată a tipului 21 culoare datelor ; = TRUE e similară C celei de lalimbajul Variabile "] "] = " e ; ste php gri determinat pe baza contextului determinat baza pe "; : create variabile // # /* o un una „ variabil din tablou de tipBoolean zbor type casting ă asociativ obi ” ș nuit ă ) */

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ is_bool tipul e determinat pe baza e baza pe contextului determinat tipul Variabile () , is_int() is_scalar funcții predefinite predefinite utile: funcții php var_dump() , is_float() () : create , variabile is_numeric() , settype() , is_array() „ din etc. zbor , , is_string() ” ,

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru a putea în programul, fi folosite a putea întreg pentru variabilele declarate trebuie cafiind Vizibilitateavariabilelor( php : variabile scope globale )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ oferaScor } function oferaScor () { = $scor  echo "Scor curent:" echo scor Undefined in 33 (); prog.php ; variable: on line on line . $scor; 4  oferaScor } function oferaScor () { = $scor // similar cu $GLOBALS["scor"]cu similar // echo global Scor curent: "Scor curent:" 33 $scor; (); ; 33 . $scor ;

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ( e.g. , în cadrul unei darnu unei funcții), în cadrul , atunci când execuția programului părăsește părăsește execuția când programului atunci o variabilă poate fi fi cafiind declarată poate o variabilă există există delocal domeniul vizibilitate doar în Vizibilitateavariabilelor( acel domeniu de vizibilitate domeniu deacel vizibilitate php : variabile - și pierde valoarea scope statică )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Variabiledisponibile în întregprogramul php tablou asociativ asociativ ce conține referințe tablou la toate variabilele definite definite variabilele la toate global : variabile predefinite variabile ( $GLOBALS superglobals [ ] )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Variabiledisponibile în întregprogramul $_GET [ ] $_POST [ ] $_FILES [ ] $_REQUEST [ ] [ ]$_REQUEST[ ]$_FILES ]$_POST$_GET [ php : variabile predefinite variabile $php_errormsg ( $_SESSION [ ] $_SESSION $_SERVER [ ] $_SERVER superglobals $argc $argv ... )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ sunt disponibile la nivel global în program disponibile la nivelglobal sunt define Specificate php ("DIMENS_MIN", " ("DIMENS_MIN", : constante cu define 15 ( "); )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ php : constante predefinite constante Exemplificări: PHP_VERSION PHP_INT_SIZE PHP_INT_MAX PHP_EOL PHP_OS FALSE TRUE NULL

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ E_PARSE E_WARNING E_ERROR E_DEPRECATED E_STRICT E_NOTICE www.phptherightway.com www.php.net/manual/en/errorfunc.constants.php Controlul manierei manierei a erorilor: de raportare Controlul php : constante predefinite constante avertismente (execuția erori fatale notificări notificări despreaspecte demodate codului privindîmbunătățirea sugestii rulării notificări în timpul erori de procesarea /#errors_and_exceptions codului codului script - avansat ului e oprită) ului ( parsing )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Mediul de execuție deexecuție oferă laconstante Mediul acces ale căror valori pot fi folosite în cadrul programului încadrul fi folosite pot valori căror ale php : constante predefinite constante __NAMESPACE__ __FUNCTION__ __METHOD__ __CLASS__ __CLASS__ __TRAIT__ __TRAIT__ __LINE__ __FILE__ __DIR__ avansat „ magice ”

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ șiruri de caractere (concatenare) (concatenare) șiruri decaractere comparații: comparații: asignare a valorii: Majoritatea, similari celor din limbajul C celordinlimbajul similari Majoritatea, control al raportăriierorilor:control asignare prin referință: referință: asignare prin aritmetici: aritmetici: logici: php ======<>!== != < ><= >= ?: ?? <=> pe biți: biți: pe : and or || xor !&& operatori = & | ^ << & | >> și + => - * / % ++ (pentru tablouri (pentru – -- =& ca la Perl: @ ) . .=

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ compararea adouă În PHP echo echo echo 17 1 15 7 5 , se pot folosi și noii șinoii operatori: folosi , sepot php .5 .5 .5 întorcând întorcând <=> <=> <=> <=> : 1 16 1 ( 5 5 operatori spaceship .5 .5 .5 expresii expresii scalar), (de tip ; ; ; - 1 , 0 sau // // // ) 1 - 0 1 1 (mai mare) (egalitate) (mai mic)

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ $ // // folosimca numede utilizator valoarea furnizată în formular oferă valoarea operandoferă dacă primului există și nue NULL, username (preluată prin GET sau POST); dacă nuexistă, vafi (preluată prin sau POST); GET altfel întoarce valoarea celui de celui valoarea întoarce altfel În PHP = $_GET['user'] 7 , se pot folosi și noii șinoii operatori: folosi , sepot php ?? ( null coalescing null : ?? operatori $_POST['user'] - al doilea operand ) ?? ' tux '; ' tux '

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } } if echo ( echo ( else (! $ nume { " " Bine Nu if ) { , php switch este ai venit asem precizat : , structuri de control structuri while , ănătoare " . $ , corect nume do , for numele . celor , "! break \ n" ); din C … , " continue );

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ echo / foreach $ // } for // * php suma $ $ umplem pentru realiz afi suma valori ( $ șă contor ("

Suma de la de ("

Suma m ă = [ ( m += $ a fi fi a $ 0 suma contor valori ; un suma $element = trimis tablou 1 ob ; as ] = ] $ valorilor contor ț ă inut $element $ clientului cu ; contor ă 1 php valori la la <= ie 10 ; 10 ș ) irea este de la de Web ; : $ exemplu contor standard " */ 1 la 10 ++) { ++) . $ suma . ".");

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/

Suma dela

Suma php Invocarea apel valori.php salv ă m ă m interpretorul codul 1 ( din rularea la 10 linia î ntr este ) - un fi un de programului PHPdin comand ș ier text 55 linia .

– ă de : valori.php PHP comand direct ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru plas ă m fi î Invocarea n navigator, a - ș l ierul invoca la nivelul serverului sursă via ( indic rularea metoda – cu drepturi de citireși execuție cu drepturi ă m ) URL programului GET a - ul c protocolului ă Web tre rezultatul program : de PHP script generat HTTP

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ recurgereala unmediu de execuție http://ideone.com/ online

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ caută fișierul sursă în directoarele predefinite specificate predefinite specificate sursă îndirectoarele fișierul caută dacă fișierul nu există, se generează unavertisment există, se generează nu dacă fișierul include_once Includerea de cod php (suport pentru modularizare) via : – structuri de control structuri include_path pentru a pentru include - sursă din altefișiere - l include dată o singură și - l evaluează

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ caută fișierul sursă în directoarele predefinite specificate predefinite specificate sursă îndirectoarele fișierul caută require_once dacă fișierul nu există, există, dacă nu se emite fișierul o eroarefatală Includerea de cod php (suport pentru modularizare) via : – structuri de control structuri include_path pentru a pentru require - sursă din altefișiere - l include osingură dată și - l evaluează

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } function // corp http://php.net/manual/en/language.functions.php … trimite Func M esaj ț ii definite de ( php $ exped : = funcții "", $ dest utilizator ="", $ sub valori implicite p i ect arametri : ="Web") cu {

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ while $ } function define } echo // e if $ numar return // final de continue numar ($ num numar ($ "$ (' numar $ MAX = ++; ++; numar patrat numar ă 0 r while ; ; par, % ', 10 2 < ($ ) la * $ deci MAX ); ); numar p numar ă trat afi ) { șă ) { este ; m p // // // increment // // continu e " . ă num func tratu num patrat ă ț ia l ă rul ă l r ui de m impar ($ maxim de maxim de ă cu ridicare numar m urm num ... ) . ă ă toarea la rul valori " \ p n ă "; trat itera ț ie

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ la PHP parametriireferință fidați prin pot numele funcțiilor sunt considerate sunt funcțiilor numele http 5.6 :// +, numărul variabilnumărul +, deparametri eindicatde php.net/manual/en/functions.arguments.php Func ț ii definite de php : funcții utilizator case – prefixați de - insensitive : & …

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } function // declare echo echo argumentele return $ } foreach $ php pentru fiecare pentru argument+ valoarea întoarsă defuncție suma $ aduna aduna suma ( strict_types aduna = suma ($ 0 în PHP += $numar;+= (pi (), (), (pi '?'); ( numere ; 7 , trebuie 3 ; ( int , 74 ... , = as $numar) { as 7 1 $ ( 1 ); numere s , sepoate precizade date și tipul scalar ); ă fie fie ă php întregi, valoarea oferită trebuie să fie de tip tip fie de trebuiesă oferită întregi, valoarea ): type int : { funcții declarations integer,givenstring to Next integer,type the of be float Argument error Fatal 85 aduna TypeError () must be of the type the of be must () 1 : Uncaught passed to passed ) : Argument avansat TypeError aduna 2 given passed () must () : int

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ $ $ $ }; saluta saluta saluta printf vezi www.phptherightway.com/pages/Functional (' (' = (" Tuxy lumea function Salut  pot programare funcțională ( funcțională programare '); '); fi % s specificate ($n ... Î ncep \ n", $ n", u me) php n â u { nd me : funcții ); cu PHP ș i // variabilădetipfuncție func ț e.g. ii 5.3 anonime , , - closures Programming.html avansat )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru detalii la de de acces php privitoare de manipulare accesarea specifice matematice de manipulare http : la prelucrare funcții predefinite funcții ://php.net/manual/en/funcref.php resurse sistemului la resurselor generale a conexiunile ș irurilor & de a ș i bazelor a de tablourilor conversie de lucru XML, PDF,JPEG,... de operare de de date caractere cu re fi ț ea ș iere

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Ma abs(), mod(), abs(), is_finite bindec rand(), sin(), pow log exp(), min() max(), round(), floor(), ceil(), tematice (), vezi și cos (), sqrt srand (), (), tan(), tan(), (), 10 octdec php : is_infinite () (), log() (), http://php.net/manual/en/refs.math.php () fmod : (), funcții predefinite funcții asin () dechex (), (), is_nan … (), , sinh … () , base_convert (), … , pi() , ()

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Ș iruri echo explode(), implode(), split(), join(), join(), split(), implode(), explode(), trim(), strcat strcmp strlen de (), print(), (), (), (), http (), ltrim caractere str_replace chr detalii detalii strcasecmp php ://php.net/manual/en/refs.basic.text.php (), (), ord rtrim printf : vizând procesarea vizând procesarea funcții predefinite funcții : (), (), () substr (), (), str_ireplace sprintf strnatcmp (), strstr () etc. () (), () etc. etc. () textelor: strtok (), strrev strpos () () (), etc. …

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Expresii conform conform preg_filter compatibile ereg (), regulate ereg_replace standardului php (), cu preg_grep cele : : funcții predefinite funcții din Perl (), split() etc. split() (), POSIX (), preg_match – PCRE: http://www.pcre.org (), preg_split (), … / Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ testarea și depanarea expresiilor regulatedirect peWeb la php http : funcții predefinite funcții ://regex 101 .com/#PCRE avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ T ablouri array_count_values array_map array_push array_keys array_merge array_fill array_reverse array_slice : http (), php (), (), (), array_combine ://php.net/manual/en/book.array.php (), (), array_reduce array_key_exists array_pop array_intersect array_chunk : (), funcții predefinite funcții array_multisort (), array_search () (), () () array_shift () (), array_diff (), (), array_sum array_filter (), () (), (), …

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ function function /* print_r $ // // $ } valori punctaje pentru folosim filtrarea filtrarea }; return // pe î return $element ntoarce baza unei baza ($ = valoare_mai_mica_decat a function valori array_filter func unor valori dintr unorvalori = ob array o ț ine ț a ); expresie ia func se studia și se studia și php // obținem: obținem: // predefinit valorile ($ ( 7 element) element) , ț ($ ii 8 < , specificate de specificate punctaje $numar; 9 : de tip , mai funcții predefinite funcții 10 - ă un tablou Array ( [ Array , array_filter use https://wiki.php.net/rfc/closures 5 mici func , , 3 valoare_mai_mica_decat , ($numar) { 10 ($numar dec ț ie 4 , programator ] => 6 â , t () 4 o ); 5 asupra valoare ) [ 5 { // abordarefuncțională // ] => tabloului 3 */ dat [ 7 ] => ă ( aici 6 avansat ( cu 7 [ : )); 8 7 ] => punctaje ) 4 )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ M anipulare ctype_digit ctype_alpha ctype_upper ctype_punct php a (), (), caracterelor ctype_xdigit (), () ctype_alnum : ctype_space funcții predefinite funcții (), : (), ctype_print (), ctype_lower … (), (),

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Dată & t getdate strftime checkdate date(), vezi și extensiile vezi șiextensiile imp idate (), (), php () localtime : strtotime (), gmdate : funcții predefinite funcții (), () Calendar gettimeofday (), … , DateTime (), time() etc. (), time() , HRTime

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ V ariabile empty serialize strval a se și consulta (), (), PHP (), print_r isset php unserialize : (), unset() (), (), : http://php.net/manual/en/book.var.php funcții predefinite funcții var_dump () ()

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ F de studiat i ș f disk_free_space chdir is_dir file_exists rename(), delete copy(), file(), iere olosind move_uploaded_file fseek fopen (), și (), (), (), directoare și mkdir is_file tipul (), ftell php http:// fread filesize de date (), (), (), php.net/manual/en/refs.fileprocess.file.php : (), (), feof is_readable rmdir funcții predefinite funcții disk_total_space fscanf (), : (), (), FILE filetype () fclose (), tmpfile – fgets (), ca la limbajul C ca lalimbajul (), (), (), is_writeable () ftruncate (), fileperms () fwrite (), (), (), (), : fprintf fstat … … , stat() , (), (), ...

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ URL http_build_query() base urldecode - uri 64 : _decode(),base php (), urlencode : funcții predefinite funcții 64 (), _encode parse_url () ()

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Prelucrarearesurselor nl json_encode highlight_string(),... show_source(), get_browser(), 2 br(), htmlentities php (), json_decode : funcții predefinite funcții (), htmlspecialchars Web (), (HTML, JSON) json_last_error (), strip_tags () : ()

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Alte funcții Alteutile die(), eval(), exit(), sleep(), usleep(), time_sleep_until() usleep(), sleep(), exit(), die(), eval(), php_info(), php_check_syntax php_info(), uniqid (), sys_getloadavg() php : : funcții predefinite funcții ()

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ acces www.phptherightway.com ArrayIterator la SplStack maniere SPL , SplQueue structuri de date structuri definite: php , ( FilesystemIterator Standard PHP standard de www : alte iteratori: iteratori: , SplHeap .php.net/ facilit /#standard_php_library , spl SplPriorityQueue , prelucrare RegexIterator Library ăț i ) avansat a etc. ,... datelor

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ de asemenea, de asemenea, PHP invocat prin invocat http:// Rularea php.net/features.commandline.webserver FPM solu php din php ( sau FastCGI ție vizândperformanța ție 5.4 linie : – ca + oferă un server Web Web incorporat un server + oferă S alte localhost: modul de Process comand facilit Apache 8000 Manager ă ăț – – t PHPCLI i phpwebapp ) avansat /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Inter - conectivitatea exemple: php Java : alte cu , JavaScript, Lua, alte facilit tehnologii ăț i .NET / avansat platforme

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru programareaobiectuală? Care - i suportul oferit de PHP

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ (o variabilă de tip obiect conține o referință la un obiect obiect laun oreferință conține de variabilă obiect (o tip Suport pentru definireaclaselorvia și de instanțiereprin operatorul obiectele obiectele tratate similarreferințelorsunt http://php.net/manual/en/oop detalii detalii la și http://php.net/language.oop php nu o copie a lui nu ocopie : clase ) 5 .intro.php new 5 class

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ class } } public } public // public private private proprietăți // (date return $ metode this Student - function function >an = $ >an = $ $ $ $ nume email an p this publice rogramare specificând specificând o referință curent la obiectul ; { - >an; ; ; ; ; // un furnizeazaAn seteazaAn specificarea A - membre) $this n ; e ste ($ obiectual un unei () () { o pseudo A n ) { clase ă - – variabil încapsularea ă

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ class } } public } public // public private private proprietăți // (date return $ metode this Student - function function >an = $ >an = $ $ $ $ nume email an p this publice rogramare ; { - >an; ; ; ; ; // un furnizeazaAn seteazaAn specificarea A - membre) n ; ($ obiectual un unei () () { A n ) { clase ă ) (  print_r ($stud); $stud $stud $ // – stud = instan [email:Student:private] [email:Student:private] [nume] =>Tux [ Student Object an:Student:private] => î ncapsularea - - > > nume seteazaAn ț new ierea Student = 'Tux'; unui ( obiect 2 ); () ; => 2

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Ca laC++,m pot fi pot embrii proteja priva publici php declarați ca fiind declarați ca – ț ț proprietăți sau metode sau metode proprietăți i i : ( ( ( protected private clase public ) ) ) –

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } class ); $ // $ // $ altStud altStud altStud [ apel apel } public } public private 'TW' => return $ this StudentDestept de de - - = new > > function function function metodă - metodă $ seteazaNote seteazaAn >note $n; = (array) 10 note p (array) $this (array) , 'IP' => , rogramare StudentDestept ; ; din din furnizeazaNote seteazaNote // notele 9 ( clasa clasa ] 2 extends ( ); - >note; >note; ob derivată de obiectual ț inute bază Student{ ($n) { (); () () { ( proprietate ă – ) mo ș tenirea

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } class ); $ // $ // $ altStud altStud altStud [ apel apel } public } public private 'TW' => return $ this StudentDestept de de - - = new > > function function function metodă - metodă $ seteazaNote seteazaAn >note $n; = (array) 10 note p (array) $this (array) , 'IP' => , rogramare StudentDestept ; ; din din furnizeazaNote seteazaNote // notele 9 ( clasa clasa ] 2 extends ( ); - >note; >note; ob derivată de obiectual ț inute bază Student{ ($n) { (); () () { ( proprietate ) (  print_r ($altStud); ă [email:Student:private] [email:Student:private] => [nume] => [an:Student:private] => [note:StudentDestept:private] StudentDestept Object – ) ( => Array ) mo [IP] => [TW] => ș 9 tenirea 10 2

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ destructorii constructorii Metode speciale: sunt php sunt denumi : numi clase ț i ț __construct i __destruct() ()

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ www.php.net/manual/en/language.oop s cope Accesarea r statice, constantesau suprascrise esolution o proprietăților/metodelor perator php : :: ( Paamayim clase 5 .paamayim Nekudotayim - nekudotayim.php )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Accesarea statice, constantesau suprascrise parent self proprietăților/metodelor php – – clasa curentă clasa : :: clase părinte

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pot fi accesate fără a fi nevoie de instanțierea deinstanțierea afi nevoie fără fiaccesate pot www.php.net/manual/en/language.oop Proprietățile sau metodele cu sau metodele declarate Proprietățile pentru exemple, exemple, pentru php : clase a se vizita 5 .static.php static clasei

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ S în clasa copil (specificată (specificată copil în clasa e permit orice metodele abstracte trebuie implementate implementate trebuie metodele abstracte clasele abstracte nu pot fi pot nu clasele abstracte clase clasă este este / metode având măcar o metodă având măcarometodă abstractă considerată considerată php abstracte cu : clase extends abstractă declarate cu declarate instanțiate ) a ) abstracte clasei abstract

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ interface interface // interfața } public function public function // public function cadrulmacheteiîn ei cuvaloarea // // S amănunte la furnizează o variabilă setează pecificarea iMacheta { iMacheta privind o reprezentarea machetei reprezentarea http://php.net/manual/en/language.oop oferaReprez ($macheta); oferaReprez $var); ($nume, setVar metodelor machetă ce va fi fi va ce de o php de vizualizare ( vizualizare de clas substituită substituită : ce interfețe ă (calaJava) vor fi ulterior fi ulterior template ) implementate 5 .interfaces.php

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ class // } aspecte mai avansate: clasa } public function } public function private // tablou// return } foreach $this Macheta $macheta = $macheta // implementând interfața implementând substituim în substituim - $variabile = $variabile >variabile[$nume] = $var; = >variabile[$nume] $macheta; asociativ ($ this implements oferaReprez ($macheta) { ($macheta) oferaReprez { $var) ($nume, setVar - str_replace ('{' ('{' str_replace >variabile cu array () array machetă numele machetă variabilele ce trebuie trebuie ce variabilele iMacheta { iMacheta ; www.phptherightway.com as $nume . $nume . '}', $val, $macheta); '}', . $nume$val, . variabilelor cu valorile valorile cu variabilelor => $val) { $val) înlocuite cu valorile lor valorile cu înlocuite /#templating lor

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ http php ://www.php.net/manual/en/reserved.interfaces.php : interfețe & clase predefinite & clase interfețe IteratorAggregate ArrayAccess Traversable Serializable Throwable Generator Closure Iterator avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ php } Iterator // interfața Iterator abstract abstract abstract abstract abstract clasa// în ceimplementeazăinterfața ce // metode trebuie scrise deprogramator : interfețe & clase predefinite & clase interfețe extends public boolean public voidpublic public void scalarpublic mixedpublic Traversable rewind next key current valid ( void ( void ) { ( void ) ( void ) ( void ) ) avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ colecție de metode ce pot fi refolosite în cadrul altor clase de fi refolositeîncadrulaltor ce colecție metode pot concept preluat de la limbajul de lalimbajul preluat concept www.php.net/manual/en/language.oop php : trăsături de clasă ( declasă trăsături Trait Self, oferit de oferit Self, PHP 5 traits .traits.php avansat ) 5.4 +

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ față de interfețe, oferă implementări ale metodelor, metodelor, ale implementări oferă față de interfețe, considerat ca șablon( considerat ca php : trăsături de clasă ( declasă trăsături nu doar signaturile lor nu doarsignaturile Trait template C++) al unei clase C++) alunei traits avansat )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } trait } trait unorfiguri geometrice (comportamente) asociate trăsăturivorfi // ce } trait } public function } public function } public function Colorare Mutare Rotire { { { coloreaza mutaLa roteste ($ ($x, $y) ($x, unghi ($ culoare ) { { ) { // // // realizează colorarea realizează implementează rotirea implementează mută la alte coordonate alte la mută avansat 2 D

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ final final class } class } abstract class } } public function const use } public function use } public function echo Mutare, ColorareMutare, Mutare, RotireColorare, Dreptunghi PI = ('Am desenat ' . ' . desenat('Am Cerc 3.1415265 Figura extends calculeazaArie () () calculeazaArie transforma () { deseneaza() extends { ; ; ; // clasa figurilor figurilor geometrice clasa// get_class Figura Figura Figura ; ; { { { { { { ()); { { // un cerc poate fi mutat colorat poate fi și un// cerc // folosește trăsăturile dorite trăsăturile folosește // // în plus, o specifică transformare în plus, // // poate fi colorat, mutat, poate ficolorat,// rotit // clasa Cerc nu mai poate fi extinsă poate fi nu mai Cerc clasa// avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ $ $ $ $ $ instanțiem //  unDreptunghi unCerc unCerc unDreptunghi unCerc PHP Am desenat Fatal error: Call to undefined method method to undefined error: Fatal Call - - = > > roteste deseneaza php new 2 figuri: un figuri: dreptunghiși un cerc - Cerc Cerc = > deseneaza new : (); in trăsături de clasă ( declasă trăsături (); (); /home/ Dreptunghi (); dMdWgn (); / prog.php // va cauza emiterea unei erori emiterea cauza va // Cerc on line on line :: roteste traits 47 avansat () )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ altele la altele O clasă are asociate proprietăți speciale ( speciale areasociate proprietăți O clasă www.php.net/manual/en/language.oop php : proprietăți speciale proprietăți ce pot fi suprascrise fi ce pot __ __destruct () __toString () construct () __get () __ set () set „ avansat 5 magice .magic.php ” )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ O biectele O biectele se pot se pot php compara pot fi pot : obiecte „ clonate folosind ” via operatorul clone ===

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ get_class is_subclass_of class_exists method_exists get_parent_class Func de mo pentru din care instan ț ii ș ț () ă de tenire un va () provine a testează unei manipulare anumit () () returna testează determin () dintre furnizează clase php un obiect numele existen anumit două dacă : ă obiecte dacă a specificat clasa clase claselor există ț a unui obiect exist unei părinte obiect o ă clase metodă o ș rela i obiectelor , ț i e

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ detalii detalii la www.php.net/manual/en/language.exceptions.php Similare dinJava celor php clasa try , catch : excepții Exception , throw

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Folosite pentru coliziunilor de Folosite pentru evitarea nume și exemplu: exemplu: de studiat declararecu namespace pentru efectuareade și php www.phptherightway.com namespace : spații de nume spații de Facebook (prima liniedeprogram) ; // Facebook SDK for PHP // Facebook SDK alias /#namespaces - uri avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ class namespace același despațiu fi nume poate definit în fișiere multiple Folosite pentru evitarea coliziunilor de nume și GenSVG pot exista ierarhii de exista pot (sub Proiect { ... }; { ... pentru efectuareade \ php Modul \ Submodul : spații de nume spații de ; Proiect - )spații de nume )spații \ Modul alias referire cu \ Submodul - uri avansat \ GenSVG

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Folosite pentru coliziunilor de Folosite pentru evitarea nume și use utilizare prin Illuminate use pentru efectuareade \ Foundation php Facebook use use Proiect exemple exemple concrete: : spații de nume spații de (eventual specificând specificând (eventual un \ \ Exceptions Authentication \ Modul \ \ Handler Submodul \ AccessToken alias as ExceptionHandler - ; uri avansat ; alias ) ;

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } function fopen () { namespace $fisier = $fisier ... Folosite pentru evitarea coliziunilor de nume și construcțiile care nu aparțin niciunui niciunui decare nuaparțin spațiu nume construcțiile definit sunt considerate ale spațiului de nume global denume considerate ale spațiului definit sunt \ fopen (...); fopen (...); ProiectWeb pentru efectuareade php // apel de funcție predefinită (din global) predefinită spațiul de funcție apel// // specificarea uneifuncții proprii // specificarea ; : spații de nume spații de alias - uri avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ vizând interacțiuneavizândWeb? Care suntfacilitățile

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Datele î n tablouri (con $_ transmite $_ REQUEST $_GET $_ $_ POST ț inutul php COOKIE SESSION asociative [ ] [ [ ] [ : – – lui [ ] [ interac [ ] [ datele datele de client( [ ] [ – $_GET – datele – cookie datele transmise transmise predefinite , $_POST ț primite - iune urile browser de tip receptate ș prin prin i web de la sesiune $_COOKIE ( ) ș GET POST i se client globale reg ) ă sesc ):

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ http://www.php.net/manual/en/reserved.variables.server.php $_SERVER[' oferă informații Web oferă privind serverul php $_SERVER[' $_SERVER[' Alte PHP_SELF $_SERVER[' : variabile interac $_SERVER[ ] $_SERVER[ '] HTTP_USER_AGENT REQUEST_METHOD indic HTTP_REFERER globale ț ă iune numele utile: web script '] '] '] - ului PHP

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ $_ http://www.php.net/manual/en/features.file FILES $_ ENV [ ] [ [ ] [ – php – Alte datele datele : variabile interac despre oferite fi vezi exemplul din arhiva de ș globale ierele ț aferentă prelegerii iune mediu primite utile: web ( environment - upload.php prin upload )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ afiseaza.php submit" submit" value=" " method="post"> " varsta nume Trimite " /> " " /> " -- > " /> "

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ (în de metodafuncție HTTP, poatefi regăsit în form form action=" form -- php else if if (!$_REQUEST[" programul // un formular Web modelat în HTML în modelat un formular Web afiseaza afiseaza < < < input type="submit" value=" input type="submit" name=" input type="text" name=" input type="text" > fiecare din formularnume decâmp reprezintă o cheie a tablouluiasociativ (" ( " afiseaza.php Numele Nu a afiseaza.php ț i nume specificat este "]) "]) " method="post"> " " . $_REQUEST[". " invocat prin POST invocat varsta nume numele Trimite " /> " " /> " -- ! " > , " /> " " $_ eroare nume REQUEST [ ] REQUEST " $_GET "]); "]); ); sau $_POST ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ SessionHandler } public public public public public public public funcțiile funcțiile bool bool bool bool string string bool Managementul sesiunilorsepoate Managementul realiza via session close destroy gc write open read create_sid implements ( int ( ( ( ( string string string void $ _*() ( php maxlifetime string ( ) void sau recurgând la sau recurgând $ $ $ session_id session_id save_path SessionHandlerInterface : http://php.net/manual/en/book.session.php $ session_id sesiuni sesiuni ) ) , ) , string string ) web $ $ session_name clasa session_data { SessionHandler ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Cum pot fi accesatebazele de date din PHP?

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ MongoDB MongoDB de S servere uport – MySQL clasele conexiunile fipersistente pot conexiunile PostgreSQL nativ SQLite / tehnologii / MongoDB MongoClient MongoCursor MongoClient MongoDB MariaDB php pentru – clasa – etc. func : bd – SQLite de o ț clasa iile multitudine baze pg_*() 3 mysql de date: i

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ preluarea actualmente, actualmente, Func conectare selectare raportare ț ii/ execu metode rezultatelor la ( utilizare abordare depreciată abordare server: ț de ia php unei erori pentru mysql_connect multe ) : î interog baz : ntr bd mysql_errno - ă un acces altele de date: – ă tablou mysql ri : … mysql_query la () – () mysql_select_db : MySQL , , mysql_fetch_array eliminată eliminată în PHP mysql mysql_error _ / p connect () MariaDB () () () 7 () Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Scop documenta : acces php faciliteaz compatibilitate alternativă la funcțiile alternativă lafuncțiile din usor : ț ii bd disponibile ă programele ment ș – i flexibil extensia enabilitatea cu API la la MySQL www.php.net/mysqli PHP - ul mysql mysqli MySQL 5 codului + _*() / MariaDB

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ini ț procesarea ierea interog Abordare Vitez php unei ă î ă nchiderea mai ri conexiuni : SQL r procedural ă bd mare de Metode spunsului – – query () conexiunii extensia cu importante etc. procesare ă serverul – sau , fetch () fetch prepare ( ) orientat – close ( ) mysqli MySQL , + : fetch securitate , execute () ă - _ obiect assoc – mysqli ( ) ( )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ ( Query OK, mysql infoiasi s ' ON DROP p@rola ă Pentru asigure > GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DELETE, UPDATE, INSERT, SELECT, GRANT )$ ' WITH GRANT OPTION; GRANT WITH ' mysql 0 rows affected ( students.* î nceput asupra acces – php u root u root autentificat , bazei TO ' vom : mysql bd 0.11 tux'@'localhost crea – de date sec) exemplu un cont MySQL un cont care din students programele ' IDENTIFIED BY IDENTIFIED ' : PHP

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ CREATE TABLE IF NOT EXISTS ` EXISTSIF NOT TABLE CREATE AUTO_INCREMENT= ) ENGINE= PRIMARY KEY (`id`) KEY PRIMARY ` ` ` ` PHPMyAdmin age id year name Folosind ` int ` ` smallint ` enum ( 11 varchar MyISAM ) NOT NULL ) NOT (' clientul 1 ( 2 ',' ( ) unsigned php , 50 2 cre ',' DEFAULT CHARSET=latin DEFAULT ) NOT NULL default '', '',default NULL ) NOT 1 3 ; ') NOT NULL default ' NOT NULL ') ă : auto_increment m mysql bd tabela zerofill – î n students exemplu linia students NOT NULL default NOT NULL ' , de ` ( 1 ', ', comand 1 cu structura ă 00 sau ', ', :

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru administrare pentru facilă, recurgem phpMyAdmin – https ://www.phpmyadmin.net/ c reăm tabela la instrumentul Web instrumentul

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ structura g enerăm

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ c onfirmarea creării

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ e ventual, inserăm o înregistrare

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } if ( $ // } if (!($ // mysql die ('A die formul (' die instan mysqli_connect_errno rez Conexiunea = new ț ă iem survenit = $ m o mysql php obiectul interogare mysqli o - > : a e eroare query bd mysqli (' ș localhost uat ș – ()) ()) { i (' la ...'); o selectname, year from students extensia interogare execut ', ' tux ă m ', ' ', '); p@rola mysqli ', ' ', students '); '))) '))) {

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ } while ($ echo ('< // (codHTML // $ // echo (' ol m olist close li >'); >'); ' >'); >'); > este conexiunea Studentul php în stil = $ (); î ă n rez numerotat anul : spaghetti - > bd fetch_assoc ' .$ ' .$ cu – inreg inreg serverul extensia ă – cu [' practică nerecomandată [' name datele year ()) ()) { MySQL '] . ''); studen ț i )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ uzual, peste se ( peste osoluție DBAL va folosi uzual, bibliotecă, În practică, se recurge la un strat de abstractizare de abstractizare la unstrat serecurge În practică, Doctrine RedBeanPHP DBAL a accesului a accesului la sistemul de stocare: … exemple PHP:exemple de instrumente ) detip Propel – – DataBase http://www.doctrine ORM – php http://propelorm.org – http://redbeanphp.com/ – : Abstraction Object bd - Relational - project.org i.e. Layer / componentă, componentă, avansat Mapping /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Instrumente utile pentru dezvoltatoriiWeb?

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ module PEAR ce ( extind PHP Extension and Application and ExtensionPHP func instrumente ț ionalit ăț ile PHP: http Repository ://pear.php.net ) / Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ PE extensii extensii de oferite terți CL ( PHP Extension instrumente Community : http:// pecl.php.net Library ) /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ transfer asincronde date (Ajax, suport pentru servicii Web servicii Web șiAPI pentru suport controlul validare acces instrumente la și baze accesului filtrare MV*, șabloanede MV*, proiectare, de date a , management , management de datelor Facilit (ORM, DAO, (ORM, : framework ăți de WebSocket : intrare - uri REST, module REST, uri ActiveRecord sesiuni , autentificare - ), avansat uri templating , caching , … ) etc , , , . , Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ altele enumerate enumerate la altele Zend CodeIgniter instrumente Framework CakePHP – http www.phpwact.org/php/mvc_frameworks ://www.yiiframework.com/ – http://www.codeigniter.com/ – – – – http://symfony.com/ http://laravel.com/ http://cakephp.org/ http://framework.zend.com : framework - avansat uri /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ │ └─── │ ├─── │ ├─── ├─── │ └─── │ ├─── │ └─── │ └─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── ├─── └─── │ └─── │ ├─── │ ├─── │ │ │ ├─── │ ├─── CodeIgniter application user_guide └─── system libraries database core views models logs libraries language helpers core controllers config cache – .com/docs instrumente Session Javascript Cache ├─── drivers errors ... pdo mysqli html cli un structurade directoare a unei : aplicații Webaplicații dezvoltatecu framework framework Laravel – laravel.com/docs PHPaxat MVCpe - avansat uri /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ detalii detalii la www.phptherightway.com Managementuldependențelor dintre biblioteci și pachete https instrumente ://getcomposer.org C omposer /#dependency_management / avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ instrumente depozit depozit gestionate gestionate prin https de pachete ( de pachete ://packagist.org/ Packagist repository avansat )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Nginx server Web + PHP + server(e) de dedate Web + PHPbaze + utilitare server +server(e) Apache M edii + PHP pre WTServer XAMPP + PHP AMPPS + - configurate M + ariaDB – MySQL http instrumente – – http://wtserver.wtriple.com http ://www.apachefriends.org + Redis de + unelte administrare /MongoDB + Perl/ /MongoDB ://www.ampps.com pentru dezvoltare / Python / / Web + ...

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ m edii Cloud de dezvoltare (și pentru) PHP (și pentru) de dezvoltare 9 , Codenvy instrumente , Koding , Nitrous „ în nori , … ”

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Editarea și execuția a se experimenta PhpFiddle Ideone Ideone instrumente ș i SQL Fiddle – – http://ideone.com/ online http://phpfiddle.org/ a programelor PHP – http://sqlfiddle.com /

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ programare limbaj de programare pentru HHVM, extinzând extinzând PHP HHVM, pentru deprogramare limbaj facilități: tipuri de date explicite ( de date explicite tipuri facilități: scop: creșterea productivității dezvoltatorului Web dezvoltatorului productivității creșterea scop: programare func Hack țională http://hacklang.org/ (Facebook, din (Facebook, asincronă ( extensii , colecții ( colecții async Vector type 2014 ) șialtele , annotations ) Map avansat , Set , Pair ), ),

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ studiu de caz : Wikipedia

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ via o suit men ține ține și http://en.wikipedia.org/wiki/Wikimedia_Foundation Wikimedia Scop Wikisource ă Wiktionary studiu de : aplica oferirea Wikipedia Foundation Wikipedia Commons de , Wikiversity , ț ii Wikinews Web caz de con , Wikidata : colaborative wikipedia ț , , inut Wikibooks Wikispecies , Wiki deschis voyage , Wikiquote – , wiki - uri , Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ MediaWiki ( PHP pentru se oferă inclusiv un API destinat dezvoltatorilor Web: dezvoltatorilor destinat API un inclusiv se oferă MySQL ( platforma ImageMagick Linux procesare www.mediawiki.org/wiki/API:Main_page studiu ( / sistemul M Ubuntu ariaDB pe nginx de con care , de wiki DjVu ( ( platforma solu (server Web) (server ruleaz caz utilizat ț , inuturi TeX ț ia : principal , wikipedia ă rsvg MediaWiki pentru de grafice , exploatare ploticus ă toate de î n MediaWiki stocare via etc. serviciile ) HHVM ) ) ) ) Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ Squid Memcached Ceph Apache Apache http și și Linux Server Linux Virtual Varnish Swift Lucene :// PowerDNS meta.wikimedia.org/wiki/Wikimedia_servers studiu ( caching (soluții de stocare redundantă(soluții distribuită) asigurarea performanței: ( ( proxy indexare de (soluție C++ pentru DNS) C++ pentru (soluție interogări asupra bazelor dedate) bazelor asupra interogări & caz caching textual – LVS : wikipedia ( pentru conținut HTML) conținut pentru ă load , facilit balancing â nd avansat c ă utarea ) )

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ studiu de caz www.mediawiki.org/wiki/Presentations : pentru pentru detalii, consultaa se wikipedia avansat

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ caracterizare,facilități, instrumente privire generală asupra PHP asupra generală privire (__) ( )___/ )___/ ______\ rezumat (_) (_)(__) (_) (_)(__) _ )( ( )_( ) _ ( ) _ )___/ \

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ un model de date pentru Web: XML familia episodul viitor:

Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/