Documentație de la computer la

Programare în PHP. A șaptea ediție. Lucrul cu șabloanele. Dezvoltați-vă propria soluție și folosiți soluțiile existente.

În această problemă, vom vorbi despre lucruri cum ar fi șabloanele - ce este, de ce este nevoie și de ce aproape toate sunt folosite. Dar mai întâi, ca de obicei, niște știri.

Și vestea este că versiunea de PHP 4.1.0. despre crearea căruia am vorbit în ediția precedentă a ieșit. Adevărul până acum este disponibil doar sub forma codului sursă (de exemplu, binarele din ferestrele de descărcare de pe www.php.net căutare sunt inutile pentru moment). Apropo, printre altele, utilizatorii de PHP de pe platforma Windows vor fi mulțumiți de faptul că dezvoltatorii PHP din această versiune vorbește despre această versiune mult mai rapidă și mai stabilă în Windows. Puteți vedea lista completă a modificărilor anunțului oficial (în limba engleză). Cereți o nouă versiune de PHP la www.php.net și www.php4win.com.

Și acum înapoi la subiectul acestei probleme.

Ce sunt șabloanele

După cum știți deja (acest lucru a fost menționat în prima ediție), PHP este un limbaj încorporat. Ie codul său este plasat în interiorul paginii HTML și este implicat în generarea de conținut dinamic. Voi da cel mai simplu exemplu:

Deci, șabloanele reprezintă un mecanism care vă va permite să scăpați mai mult sau mai puțin de legătura strânsă a codului dvs. cu aspectul site-ului dvs. și să vă ajutați să facilitați sarcina de a genera pagini dinamice de cod HTML. Ideea principală a acestui mecanism este de a avea o mulțime de "piese" de cod HTML, din care apoi, ca din cuburile designerului, să colectezi orice pagină a site-ului tău.

Cele mai simple șabloane

Cea mai simplă modalitate de a utiliza tempatele este de a crea mai multe variabile care conțin biți de cod HTML. Codul paginii în sine este implicat în unificarea codului HTML din aceste variabile cu datele necesare obținerii rezultatului. Să vedem, de exemplu, cum poate arăta generarea aceleiași pagini utilizând cele mai simple șabloane. Aici nu am folosit nici unul dintre pachetele comune, pentru că vreau doar să vă arăt ideea principală.

Fișierul templates.php conține o descriere a tuturor șabloanelor necesare. Dacă vă uitați la conținutul variabilelor descrise în acest fișier, puteți observa că aceasta este aceeași pagină, dar este împărțită în mai multe părți, între care trebuie introduse date.

Fișierul index.php conține codul de construire a paginii

Desigur, acest cod pare a fi groaznic și așa (sper), de fapt, nimeni nu o face. Dar ideea de bază a "colectării" codului HTML al paginii din piese, acest exemplu demonstrează destul de bine.

De fapt, problema principală cu codul de mai sus este că nu vă permite să eliminați complet codul HTML în interiorul codului PHP, deoarece aici fiecare bucată de cod HTML este stocată într-o variabilă separată. Imaginați-vă cât de mulți ar trebui să aibă astfel de variabile pentru o pagină mai mult sau mai puțin complexă. Și, în plus, în ciuda faptului că codul HTML plasat direct într-un fișier separat, dar relația sa cu rezultatele de cod PHP hardcoded în codul PHP (ca toate de asociere HTML și PHP cod este hardcoded).

Cele mai multe dintre aceste probleme pot fi rezolvate prin utilizarea unui sistem simplu de substituire a datelor în șabloane HTML. Vom lua în considerare unul dintre ele în secțiunea următoare.

Utilizarea șabloanelor cu înlocuirea datelor

Principala diferență între sistemele bazate pe substituția datelor este aceea că permit, folosind o anumită sintaxă, să se determine locurile de inserare a datelor în șabloane HTML. De fapt, toate sistemele disponibile de lucru cu șabloanele se bazează pe acest principiu, iar singurul lucru care le distinge este sintaxa utilizată pentru a specifica șabloanele și setul de posibilități oferite de sistem.

Dar, mai întâi, o scurtă descriere a sintaxei pentru descrierea șabloanelor folosite în acest sistem. Eu o voi aduce în sistemul de tip EBNF și apoi voi da explicațiile necesare.

"Cheie" pentru înlocuire:

Cheia pentru substituție este partea din textul șablonului, care va fi ulterior înlocuită de unele date transmise funcției - manipulatorul de șabloane. Se compune din două părți principale: un nume (unic în cadrul acestui șablon) și o valoare implicită opțională. Acesta va fi folosit dacă șablonul nu a fost setat pe acesta pentru prelucrarea șablonului. În cazul în care valoarea implicită nu a fost specificată, această cheie va fi înlocuită cu un șir gol.

Valoarea implicită poate fi de asemenea utilizată pentru a specifica procesarea specială. Iată trei tipuri de sintaxă diferite care sunt valabile pentru valoarea implicită:

După cum puteți vedea, tipul de procesare pentru valoarea implicită este specificat în primul caracter.

Dacă este un caracter "#". atunci întreaga valoare este tratată ca "inserați rezultatul procesării șablonului cu numele