Service Service dezvoltarea (__) ( )___/ )___/ ______programare Oriented _ \ aplica (_) (_)(__) (_) (_)(__) _ )( ( )_( ) _ ( ) _ țiilor Web înțiilor PHP Architectures Web )___/ \
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ care nu „ Leonardo E mediocru ucenicul - ș i dep ăș e da ș te maestrul. Vinci ”
Dr. Sabin Buragaprofs.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ă: Zend 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 Buragaprofs.info.uaic.ro/~busaco/ poate fi inclus ofer Server de php direct de tip ă un : limbaj caracterizare ș script i î n aplica cadrul , de interpretat programare ț documentelor ii Web HTML
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ S intax ă uzual inspirat , programele php ă de : caracterizare C, Perl PHPau ș i Java extensia – case sensitive . php
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Zend Engine ) 2 .opcodes.php interne / 2
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ utilizat se poate adopta HHVM ă de Pentru creșterea performanței, – Baidu HipHop php , Box, : www.hhvm.com caracterizare Virtual Virtual compilarea Etsy , Facebook, Facebook, , Machine just (Facebook) Wikipedia - in avansat - time , …
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ PHP ca dePHPlimbaj programare procedurală
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ php : tipuri de date tipuri TRUE boolean sau FALSE – scalare
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ recurgereala unmediu de execuție http://ideone.com/ online
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ Inter - conectivitatea exemple: php Java : alte cu , JavaScript, Lua, alte facilit tehnologii ăț i .NET / avansat platforme
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ pentru programareaobiectuală? Care - i suportul oferit de PHP
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ destructorii constructorii Metode speciale: sunt php sunt denumi : numi clase ț i ț __construct i __destruct() ()
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ Accesarea statice, constantesau suprascrise parent self proprietăților/metodelor php – – clasa curentă clasa : :: clase părinte
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ vizând interacțiuneavizândWeb? Care suntfacilitățile
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ afiseaza.php submit" submit" value=" " method="post"> " varsta nume Trimite " /> " " /> " -- > " /> "
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ Cum pot fi accesatebazele de date din PHP?
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ pentru administrare pentru facilă, recurgem phpMyAdmin – https ://www.phpmyadmin.net/ c reăm tabela la instrumentul Web instrumentul
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ structura g enerăm
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ c onfirmarea creării
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ e ventual, inserăm o înregistrare
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ Instrumente utile pentru dezvoltatoriiWeb?
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ PE extensii extensii de oferite terți CL ( PHP Extension instrumente Community : http:// pecl.php.net Library ) /
Dr. Sabin Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ altele enumerate enumerate la altele Zend CodeIgniter instrumente Framework Yii Symfony CakePHP Laravel – 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 Buragaprofs.info.uaic.ro/~busaco/ │ └─── │ ├─── │ ├─── ├─── │ └─── │ ├─── │ └─── │ └─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── │ ├─── ├─── └─── │ └─── │ ├─── │ ├─── │ │ │ ├─── │ ├─── CodeIgniter application user_guide └─── system libraries database core views models logs libraries language helpers core controllers config cache – codeigniter.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ instrumente depozit depozit gestionate gestionate prin https de pachete ( de pachete ://packagist.org/ Packagist Composer repository avansat )
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ studiu de caz : Wikipedia
Dr. Sabin Buragaprofs.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 Buragaprofs.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 Buragaprofs.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 Buragaprofs.info.uaic.ro/~busaco/ studiu de caz www.mediawiki.org/wiki/Presentations : pentru pentru detalii, consultaa se wikipedia avansat
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ caracterizare,facilități, instrumente privire generală asupra PHP asupra generală privire (__) ( )___/ )___/ ______\ rezumat (_) (_)(__) (_) (_)(__) _ )( ( )_( ) _ ( ) _ )___/ \
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/ un model de date pentru Web: XML familia episodul viitor:
Dr. Sabin Buragaprofs.info.uaic.ro/~busaco/