Fundațiile cu cadru Zend (2

O zi bună site-ul toți oaspeții ruseller.com. Astăzi vom continua perspectiva noastră practică într-una dintre cele mai avansate și mai populare freymvorkov PHP - Zend Framework. În lecția de astăzi vom implementa o aplicatie simpla Zend, și anume: a crea un aspect, să învețe cum să interacționeze cu modelele (baze de date), formulare și alte caracteristici făcut.

În primul rând, aș dori să vă reamintesc că noi creăm o aplicație simplă pentru a crea Zend depunere a filmelor noastre preferate. Pentru a vă asigura că sunt bine orientate în acest tutorial, vă sugerez să citiți prima parte a seriei de lecții - „elementele de bază de lucru cu Zend Framework (1/3) - Instalarea și de a crea un proiect.“

Deci, în acest moment ar fi trebuit creat aplicație Zend Framework constând dintr-un singur controler - Index și patru de acțiune - index, adăuga, edita, șterge.

Crearea de baze de date și tabele

Pentru ca noi să fim o mulțime de lucru pentru a crea un tabel și completați-l cu informațiile:

Pentru a vă conecta la o bază de date folosiți de obicei db.php fișier sau ceva de genul asta. În Zend Framework, în acest scop, există un fișier separat - application.ini, care este în directorul de proiect zfdemo \ aplicație \ configurările dvs. \ application.ini. Navigați la segmentul de dezvoltare ([producție de dezvoltare.]), Și introduceți următorul cod:

PDO_MYSQL - un adaptor, pe care o vom folosi pentru a lucra cu baze de date. Dacă ați lucrat vreodată cu baze de date, următoarele opțiuni vor fi familiare.

Acum, pentru a interacționa cu tabelul nou creat, avem nevoie pentru a crea un model. Facem acest lucru prin utilizarea Zend Tool (instalare și configurare a sculei este descrisă în detaliu într-un articol anterior). Deschideți linia de consola sau de comandă. Du-te la directorul proiectului dvs. (opțional). Acum, tastați următoarea comandă:

După ce efectuați această operație, va crea un nou director (application / modele / DbTable) și fișierul Movies.php. Deschideți acest fișier și umple-l cu următorul cuprins:

Tocmai am creat un model cu un foarte lung Application_Model_DbTable_Movies nume. Acest nume trebuie să fie în conformitate cu normele de construcție a proiectului. Adevărul este că, atunci când vom crea un obiect al acestui model, Zend Framework trebuie să determine ce fel de fișier pentru a se conecta. Acest nume de clasă indică faptul că modelul este în / modele / db-masa de aplicare director, iar modelul in sine este numit Movies.php. Astfel, Zend Framework se va conecta automat acest model.

Dacă ați observat, modelul nostru este moștenit de la clasa Zend_Db_Table_Abstract. Datorită acestei moșteniri putem folosi metodele insera (), actualizare (), șterge (), fetchRow (), fetchAll () și multe altele.

Acum, că tot ceea ce este necesar pentru a lucra cu baza de date este gata, trece la crearea de aspect.

Crearea unui aspect

Dupa cum se poate vedea din primul articol, fiecare controler are o serie de acțiuni sale, fiecare dintre care, la rândul său, are propria vedere. Dacă deschideți orice punct de vedere, să aplicație \ vederi \ script-uri de index \ edit.phtml \, nu veți vedea nici un DOCTYPE, sau tag-uri meta ... Ați putea întreba: „Ce ar trebui să scrie în fiecare fișier doctype»?. Răspunsul - Bineînțeles că nu! În acest scop, există Aspect Zend Framework.

Deschideți consola sau comanda prompterul și să navigați în directorul de proiect. Pentru a crea un aspect, tastați următoarea comandă:

După executarea acestei comenzi, o nouă linie va apărea în application.ini dumneavoastră:

Sub această linie, se adaugă următoarea mențiune, care spune cererea de modul de utilizare a DOCTYPE:

În scopul de a face complet departe cu decorul în directorul publice, creați un folder și fișier css site.css:

crearea de formulare

În scopul de a încorpora informații într-o bază de date, avem nevoie pentru a crea un formular prin care utilizatorul va introduce datele lor. Deschideți un prompt de comandă, schimbați la directorul proiectului și tastați următoarea comandă:

Din cauza moștenire de la Zend_Form avem capacitatea de a crea formă puternică și sigură.

Zend Framework ofera cursuri pentru toate elementele de formulare HTML. În acest fragment de cod, am creat 4 element de formular. Unul ascunse, 2 campuri de text si apasati.

Dacă sunteți creditat cu același element multiple validatori, este util să vă al doilea parametru al metodei addValidator. Dacă acest parametru este adevărat, acest lucru înseamnă că, în cazul în care validarea eșuează, controalele ulterioare nu ar avea loc pe element.

A treia opțiune - o validare mesaje de eroare. Trebuie să precizăm cheia de eroare și a scrie un mesaj. Acest lucru nu se poate face, dar atunci mesajele vor fi afișate în limba engleză.

Acum, că toate lucrările pregătitoare a fost finalizată, putem începe să pună în aplicare nostru de acțiune vizualizare.

Punerea în aplicare a CRUD

Afișează o listă de filme

Deschideți IndexController controler, care este în aplicație directorul / controlerele și inserați următoarea metodă:

În acest pasaj avem toate filmele noastre preferate și le-a făcut în vedere, în care ne vom referi la ele în filme variabile $ this->. Index.phtml deschide un fișier care se află în aplicația \ vizualizări \ script \ indexul și inserați următorul cod:

Acest fragment metodă de utilizare de evacuare ca un filtru. Acum, dacă ai făcut totul corect, www.zfdemo.web / index pagina / index, ar trebui să vedeți o listă de filme.

Creați un nou film

Deschideți IndexController și introduceți o altă metodă:

În primul rând, vom crea obiectul formă și trece-l la vizualizarea. Următoarele este codul care verifică valabilitatea formularului completat. În cazul în care utilizatorul a intrat în regulă, introduceți-l în baza de date. Dacă nu, utilizatorul va avea posibilitatea de a corecta greșelile. fișier add.phtml Deschideți. Adăugați următorul cod:

editarea filmului

Adăugați următorul cod în IndexController:

Acest fragment nu este foarte diferit de cel precedent. Singura diferență în cele din urmă. Pentru a completa un formular de text, l-am extrage folosind metoda getMovie (), am scris. Deschideți fișierul edit.phtml și inserați codul:

Eliminarea filmului

Deschideți IndexController pentru a adăuga această din urmă metodă:

În acest fișier, vom imprima formularul pentru utilizator pentru a confirma dorința sa de a elimina intrarea.

concluzie

În această lecție ați învățat de la crearea de aspect, forme și modele. Acum aveți o impresie mai clară ar trebui să apară de modul de a crea aplicații pe Zend Framework. Săptămâna viitoare vă voi arăta cum să creați un Zend mijloc de autentificare.

Pe aceasta am totul, dar vă amintiți că ...

Cele mai noi lecții în Zend Framework, puteți găsi doar aici, pe site-ul Ruseller.com

5 lecții ultima coloană „PHP“

Când vine vorba de securitatea site-ul web, expresia „Filter toate, totul scăpa“ vor fi întotdeauna relevante. Astăzi hai să vorbim despre filtrarea datelor.

  • Expresiv 2 suporta conectivitate la alte componente pentru regim special ZF. Nu tuturor le place decizia. In acest articol vom discuta despre modalitățile de îmbunătățire a procesului de conectare a mai multor module.

  • Să presupunem că aveți nevoie pentru a trimite unele informații la Google Analytics dintr-un script server-side. Cum de a face acest lucru. Răspunsul în acest articol.

  • O selecție de mai multe tipuri de PHP Sandbox. Pe unele voi în modul on-line va fi capabil de a testa un cod, dar există și soluții care pot fi implementate pe site.

    Am o problemă cu codificarea atunci când o mostră a bazei de date MySQL! Pe pagina Set windows1251, cum se face că, atunci când se formează un eșantion de bază, aceeași codificare! Știu că pot face mysql_query ( „cp1251 NUME SET“) transport pe distanțe, dar cum să-l pună în aplicare în Zende?

  • Ajutor! Aș dori să învețe, dar blocat. Am înțeles că codificările materie, dar mintea (experienta) de a face nu este suficient. Aplicația rulează, dar se afișează informații ruse din baza de date. Engleză - în mod normal. La introducerea manuală în limba rusă: apare ceva, dar ceva - nu. Dar, în același timp, informațiile din baza de date în krakazyabrah. Bukovki privind retragerea, după cum am înțeles, taie funcția de evacuare () în movie.phtml. Ajutor! (Se pare că aceeași problemă ca și cea a neoh în postul anterior)

  • Însuși răspunde la: resources.db.params.charset = „UTF8“ pus în application.ini si Zend comunica cu baza de numai UTF8.

  • Nu mă pot conecta la baza de date. Eu fac totul cum este descris, dar am un hard DENVER. Motorul a început, dar când voi trece două lecții - care dă „A apărut o eroare Eroare de aplicație“. poate cineva spune-mi cum să fiu aici. Extensia PDO în PHP am valoare. Versiune php5.2.12. probyval doar rulați codul sursa - nu a funcționat. „A apărut o eroare Eroare de aplicație“ (((deja a treia zi îngrijorat

    Am aceeași eroare, dar nu există nici un fișier .htaccess folderul public, descărcați sursa lecției acolo, nu este, puteți arunca conținutul fișierului?

  • khaletskiy

    5+ de la mine pentru lecție. Ca să nu mai spun că am învățat multe. Doar pentru o abordare de calitate.

  • Vă rugăm să explicați de ce modelul este creat în folderul DbTable? Nu este mai ușor de a crea toate modelele din dosarul cel mai de modele? De asemenea, întrebarea dacă este posibil să se creeze modele și controlere, fără a utiliza Zend Tool? Ca orice complicat, dar am observat că atunci când utilizați instrumentul Zend făcut unele modificări în .zfproject.xml.

  • „Crearea de baze de date și tabele Pentru ca noi să fim o mulțime de lucru pentru a crea un tabel și completați-l cu informațiile:“ Întrebarea este: unde ar trebui să fie codul de acel fișier? Nu pot să înțeleg.

  • $ This-> View-> filme = $ exterior-> fetchAll (); Dacă apelați var_dump ($ exterior-> fetchAll ()), atunci am o grămadă într-o serie de exces resturi (Infa pe masă.) acest lucru este normal?

  • Am un mesaj de eroare: Nu există rezultate pentru Application_Model_DbTable_Movies adaptor, dar în folderul public nu are un fișier .htaccess, descărcați sursa lecției acolo, nu este, puteți arunca conținutul fișierului?

    Fundațiile cu cadru Zend (2

    Prin obținerea de informații de la două canale (vedere si auz) eficacitatea instruirii de învățare departe superioare de cărți. O temele pentru acasă și teste on-line vă va permite să se gândească în mod constant în limba țintă și imediat verifica cunoștințele!

    Fundațiile cu cadru Zend (2

    Fundațiile cu cadru Zend (2

    Dacă doriți o lungă perioadă de timp pentru a studia modul în HTML, mi-ai, pentru ai vesti bune!

    Fundațiile cu cadru Zend (2

    Dacă ați învățat deja HTML și doresc să avanseze, următorul pas va fi de a studia tehnologia CSS.

    Fundațiile cu cadru Zend (2

    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!