Până în prezent, există numeroase moduri de afișare a paginii html. Din ce în ce mai des, în aceste scopuri, dezvoltatorii web folosesc așa-numitele templante. Astăzi vom examina un mic exemplu de utilizare a șablonului Twig.
Twig Caracteristici
- fenomenal de viteză rapidă de lucru (în comparație cu alte mașini de template)
- compilarea șabloanelor într-un cod PHP bine optimizat
- utilizarea "moștenirii" (puteți defini șabloanele de bază și de copil)
- vă permite să creați și să utilizați macrocomenzi
Există multe modalități de a instala Twig. Cea mai ușoară și mai rapidă este descărcarea unei componente de la GitHub. atunci arhiva trebuie să fie despachetată și directorul lib trebuie transferat în folder cu proiectul nostru.
Structura proiectului
Acum, hai să mergem la afaceri și să luăm în considerare structura micului nostru proiect:
Toate funcționalitățile asociate cu conectarea și configurarea Twig sunt conținute în fișierul index.php.
În dosarul Șabloane vom stoca fișierele șablon. În cazul nostru, aceste fișiere sunt 2: base.html cu cod html de bază și books.html cu o listă de cărți.
Directorul compilation_cache va conține fișierele PHP create de Twig pentru a funcționa.
Conexiunea și configurația de bază a lui Twig-a
Deci, primul lucru pe care trebuie să-l facem este să conectăm Twig:
După aceea, spuneți motorului șablonului unde avem fișierele șablonului. Ca argument, trecem calea către directorul de șabloane:
Apoi creați obiectul șablonului și specificați câteva alte opțiuni:
Parametrul cache-ului transmite calea spre directorul compilation_cache. Activați opțiunea auto_reload, astfel încât atunci când actualizăm pagina, Twig re-procesează șabloanele și am văzut modificările. Dacă nu faceți acest lucru, șablonul cachează pur și simplu paginile. Când lucrarea la proiect este finalizată, această opțiune poate fi eliminată pentru a face paginile dvs. cache și încărcate chiar mai repede.
Pentru a implementa exemplul nostru mic, luați o listă de cărți și formați o matrice a formularului cheie-valoare:
Încărcare de fișiere și transfer de date
Pentru a transfera date către un anumit șablon și a scoate rezultatul html, trebuie să folosim metoda rendering (); Ca primul argument, vom trece numele fișierului șablon pe care îl vom emite. Ca al doilea, o matrice de valoare-cheie. În viitor, cu cheile date, vom avea acces la datele noastre din șabloanele.
Vizualizarea generală a fișierului index.php
Configurarea șablonului de bază
Șablonul de bază este un document html obișnuit cu inserții speciale:
În șablonul nostru principal atribuim 2 blocuri: titlu și conținut. Noi alegem noi numele blocurilor.
Mai târziu, în aceste blocuri comune, vom introduce informații specifice paginilor copilului.
Configurarea unui șablon de ieșire a cărților
În primul rând, trebuie să specificăm șablonul părinte în șablonul copil:
În continuare, în blocul de titlu vom scrie numele paginii copil, care va fi procesat de Twig și introdus între etichetele de titlu din șablonul de bază:
Chiar acolo în buclă pentru (Twig for), vom trece prin toate cărțile care au fost transferate în acest șablon folosind fișierul $ twig-> render ('books.html', array ('books' => $ books); și pentru a extrage valorile, ne referim la elementele matricei prin tastele:>,> și așa mai departe.
Puteți vedea un exemplu al acestui script în demo sau puteți descărca arhiva cu un exemplu gata.
Ultimele 5 lecții din rubrica "PHP"
Când vine vorba de securitatea unui site web, expresia "filtra totul, ecran totul" va fi întotdeauna relevantă. Astăzi, să vorbim despre filtrarea datelor.
Expressive 2 acceptă posibilitatea conectării altor componente ZF pe un circuit special. Nu toată lumea îi place această decizie. În acest articol, vom descrie modul de îmbunătățire a procesului de conectare a mai multor module.
Să presupunem că trebuie să trimiteți câteva informații în Google Analytics din scriptul de pe server. Cum se face. Răspunsul este în această notă.
O selecție de mai multe tipuri de nisip PHP. Pe unele veți putea să vă puneți codul online, dar există și soluții pe care le puteți implementa pe site-ul dvs.
Bună, vreau să te rog să faci mai multe lecții pe pânză
ramura este mai lentă decât smarty, iar funcționalitatea este de 90% 1 și aceeași. trage concluzii.
Quber
Aș dori mai multe articole pe tema tematică Twig. Totuși, acesta este unul dintre cele mai comune șabloane, trebuie să știți totul despre el. După ce ați învățat, puteți stabili cât de convenabil este și dacă ar trebui să fie utilizat. Pentru dezvoltarea generală, trebuie să cunoaștem astfel de lucruri. Așteptăm continuările.
Sunt de acord cu @Quber. Aș dori să am mai multe articole despre tema tematică Twig, dar despre ceilalți șabloane nu ar fi rău să afli.
Vladimir Grishin
păstrați subiectul! este chiar interesant de a utiliza creasta cu orice cadru? sfătuiți de unde să începeți. Vă mulțumim pentru articolele dvs. informative!
stanislav.protasevic
Mulți template-i, inclusiv ramura, pot fi implementați atât în cadrul finit, cât și în propriul tău. Twig este utilizat în mod implicit în cadrul framework-ului Syphony 2 PHP.
hi în simfonie este deja în kit și în zend există un modul. astfel încât cele mai avansate cadre deja să o utilizeze
Aș dori o lecție despre criptarea referințelor la obiecte.
Quber
în, este, de asemenea, interesant! Doar sapand informatiile, ca fiind cele mai corecte, este convenabil si profitabil de a implementa MVC pentru site-ul php. Ar fi minunat să vedem o lecție sau informații despre acest subiect. Vă mulțumim anticipat.
Bine ai venit! Am o astfel de întrebare. Instalat pe computer (câștiga 8) server virtual Xampp. Acum încerc să instalez Twig, aruncând folderul lib în htdocs, am înregistrat totul ca în exemplu. Dar nimic nu funcționează, vă rog să-mi spuneți ce greșesc. Este foarte necesar. Mulțumesc!
stas.protasevich
și codul sursă al lecției funcționează pentru dvs.?
Ei bine, eu chiar aici un exemplu din această pagină pe care o iau și eu arunc în htdocs și nu funcționează la fel. Nu pot să înțeleg ce sa întâmplat.
stas.protasevich
E greu de spus orbește. Încercați să mă contactați prin intermediul rețelei sociale.
Da, tema Twig este foarte interesantă. Acest șablon este utilizat în mod implicit de către simfony, iar cadrul zend are un modul de conectare. Cred că acest șablon special va fi dacă nu este încă numărul 1 Vă mulțumim
Spuneți-mi, pot introduce un cod php al tipului MyClass :: getValue () în interiorul șablonului de creangă. Sau dacă folosim ramuri pentru randare, atunci suntem obligați să transmitem toate valorile la vedere în avans? Nu vreau să creez în prealabil o variabilă întreagă pentru astfel de funcții statice.
Dmitri Tsirulnikov
Prin obținerea de informații imediat prin două canale (vedere și auz), eficiența predării este mult mai mare decât învățarea din cărți. Și temele și testele online vă vor permite să gândiți în mod constant în limba pe care o învățați și să vă verificați imediat cunoștințele!
Dacă doriți să învățați HTML mult timp, atunci am o veste bună pentru dvs.!
Dacă ați învățat deja HTML și doriți să treceți mai departe, următorul pas este să învățați tehnologia CSS.
Dacă doriți să înțeleagă conceptele de domeniu si hosting, învață cum să creeze o bază de date, încărca fișiere pe un site web prin intermediul unui server FTP, crea subdomenii, configurați cutiile poștale pentru site-ul și să monitorizeze participarea, acest curs este conceput special pentru tine!