Categorie: Zend Framework

Zend Framework Per-Modulul setările de bază

Prin , vineri, un ianuarie 2010 22:40

Am creat un de urmarire pentru acest post care necesită o configuraţie mai puţin, vă rugăm să consultaţi Aspect Modulul Bazat - Zend Framework .

Când utilizaţi Zend Framework cu module, evident că, dacă rulaţi diferite (sub-) site-uri de pe aceeaşi cerere nu doriţi neapărat acelaşi aspect script pentru fiecare parte. Am hotarat sa merg cu structura site-ul următor:

  / Aplicaţie
     / Controlere
         ...
     / Modele
     / Module
         / Default
             / Controlere
             / Aspect
                 / Script-uri
             / Vizualizari
                 / Script-uri
         / AnotherModule
             ...
     / Script-uri

Problema a fost de înfiinţare a script aspect pe o bază per-modul. Răspunsul a venit prin utilizarea unui Helper de acţiune. Configurarea layout pe o baza per-modul implică trei etape:

  1. Application.ini (sau de configurare configuraţie similară):
      admin.resources.layout.layoutPath APPLICATION_PATH = "/ modules / admin / layout / script"
     default.resources.layout.layoutPath APPLICATION_PATH = "/ modules / default / layout / script"
     member.resources.layout.layoutPath APPLICATION_PATH = "/ modules / membru / layout / script"
     affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ module / afiliat / layout / script" 
  2. Creaţi Helper dumneavoastră de acţiune:
      <? Php
     / **
      * Setează calea de aspect pe o bază per-modul
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Deoarece 2010-01-01
      * /
     clasa Pro_Controller_Action_Helper_SetLayoutPath
         extinde Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Seturi de cale aspect bazate pe modulul
          * /
         preDispatch funcţia publică ()
         {
        	 $ Modul = $ this-> getRequest () -> getModuleName ();
    
    	     dacă ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modul] ['resurse'] ['aspect'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  [Modul $] $ config ['resurse'] ['aspect'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("aspect")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Şi, în sfârşit boostrap helper de acţiune:
      ...
         / **
          * Configurează script aspect pe o baza per-modul
          * /
         protejate funcţia _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     Layout = $ Zend_Controller_Action_HelperBroker:: addHelper (
    	         noi Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Doctrina: DATETIME default NOW ()

Prin , miercuri 30 decembrie 2009 18:30

Am fost luptă cu crearea unei schema bazei de date pentru un nou Zend Framework proiect. Sunt utilizând încercaţi să utilizaţi Doctrina ORM pentru modelele baza mea de date. Am nevoie pentru a configura schema, astfel încât acesta mi-a permis să stabilească o dată implicit şi de timp pentru o `datetime` coloana, de exemplu, atunci când se adaugă un mesaj nou primesc timestamp-ul curent. După multe cercetări şi experimente am gasit solutia aşa că eu sunt o partajare.

În dvs. schemă YAML fişier face pur şi simplu următorul text:

 Mesajul:
   actAs:
     Timestampable:
       creat:
         Nume: created_at
         tip: timestamp
         Format: Ymd H: i: s
       actualizat:
         Nume: last_updated
         tip: timestamp
         Format: Ymd H: i: s
   coloane:
     id:
       tip: integer
       primar: adevărat
       autoincrement: adevărat
     Nume: string (255)
     e-mail: string (300)
     mesaj: string (2000)

Dacă, pe de altă parte, nu doriţi un `updated_at` coloană puteţi folosi următorul text:

 Mesajul:
   actAs:
     Timestampable:
       creat:
         Nume: created_at
         tip: timestamp
         Format: Ymd H: i: s
       actualizat:
         cu handicap: adevărat
   coloane:
     id:
       tip: integer
       primar: adevărat
       autoincrement: adevărat
     Nume: string (255)
     e-mail: string (300)
     mesaj: string (2000)

Zend Framework: Fundamentals - opinie

Prin , Sâmbătă 28 noiembrie 2009 22:42

Angajatorul meu recent plătit pentru un grup de dezvoltatori pentru a ne lua Zend Framework: Fundamentals Desigur, aici voi rezuma gândurile mele şi opinii cu privire la cursul pentru alţii. Pentru cei care doresc pentru a economisi timp, aici e rezumatul meu:

Pentru dezvoltatorii care nu au avut timp să se uite la Zend Framework acest curs (Zend Framework: Fundamentals) oferă o bună imagine de ansamblu a cadrului de introducerea sa domeniile-cheie şi furnizarea de informaţii suficiente pentru a continua. Pentru cei care au petrecut timp uita la cadru si au urmat una sau două tutoriale acest curs nu oferă mult dincolo.

Fundal

Am fost un PHP pentru dezvoltator în jurul valorii de 5-6 ani, si au inceput sa lucreze cu Zend Framework pe o bază componentă în ultimele 6 luni. Am dezvoltat şi / sau a fost un dezvoltator de o serie de mici Zend Framework MVC sites. Voi fi sincer, nu am avut o mare cantitate de expunere la alte cadre dintr-un punct de codare de vedere, dar au petrecut mai multe oră cercetarea site-urile de proiect şi evaluarea them. cadru şi comunitatea înconjurătoare Zend Framework este destul de interesant şi nu par a fi posibilităţi uriaşe în cazul în care sa mergi.

Despre curs

Cursul este livrat de peste 9 două oră sesiuni WebEx (cu o pauză de 10 minute în mijloc). Timp este petrecut trece printr-un set de diapozitive furnizate de Zend cu discuţia în orice moment. Aveţi posibilitatea să utilizaţi un microfon pentru a vorbi la instructor, dar sa fiu sincer nu am văzut pe nimeni utilizare ceva mai mult decât fereastra de chat. În plus, o VMWare Ubuntu este cu condiţia ca are exemplul de cod şi proiecte înfiinţat o versiune un proces de Zend Studio. Discuţiile Cursul lider la participanti, fie peste o soluţie integrată VoIP, sau puteţi apela în utilizând una dintre dial la nivel mondial în mai multe numere.

În timpul cursului materialul constă într-o scurtă prezentare a cadrului şi modelul MVC înainte de a merge într-o aplicaţie eşantion cartea de oaspeti. Discuţia a demonstrat procesul de bootstrap, Zend_Application, Mese Db, acces baze de date, formulare, filtrare, ACL, Validarea, etc, etc acoperind practic toate subiectele ai nevoie pentru a obţine un site de bază până rulează o tot timpul, oferindu-vă instrumentele necesare pentru a du-te şi să obţină mai avansate, în cadrul (deşi această sumă pentru a "vedea site-ul" o mare parte din timp).

Timpul este dat de Codul de la câteva exemple, şi să dezvolte "Carte de Oaspeti" şi simpla cerere "wiki". Personal, am simţit că furnizarea codului sau fiecare app şi apoi cerându-ne să dezvolte ceea ce a fost în esenţă, alături de o copie nu a furnizat într-adevăr o experienţă de învăţare bună. Aş fi preferat să dezvolte o cerere similară, dar nu identice. la cererea de exemplu, cu avantajul de a avea un ghid pentru a se referi la. Alternativ construirea aplicaţiilor de la zero cu demonstrativ ar fi, eventual, a condus la mai multe întrebări despre ce şi cum, oferind astfel o mai bună înţelegere a cadrului, după tot ce se poate căuta după specificul cursului.

Ultima prelegere a constat de lucru privind aplicarea wiki cu ajutorul / îndrumare de la instructor. Dupa feedback-ul curs a fost luată, a fost subliniat de mai multe ori prin cursul pe care ia Zend feedback-ul foarte în serios, de fapt, se pare că versiunea noastră a cursului a fost destul de nou. Unii dintre dezvoltatori de altă natură în compania va lua cursul în curând asa ca va fi interesant pentru a vedea dacă sa întâmplat acest lucru.

Stilul Cursul a fost informal, permis de feedback-ul şi colaborare între participanţi şi instructor. Liderul Cursul a fost prietenos, abordabil (adrese de email au fost împărtăşite de întrebări), şi în timp ce prezentarea sa de la slide-uri a fost un pic şubredă părea pe deplin competente în cadrul. El a fost în mod clar pe cineva care a folosit-cadru în mod regulat, mai degrabă decât pe cineva care este învăţat să predea cursul, mi-a placut experienta "lumea reala", în această privinţă.

Senzaţie de ansamblu

În unele privinţe am gasit desigur, o pierdere de timp, în altele a fost foarte la îndemână. Să sperăm că voi primi în mod clar motivele mele, şi să furnizeze poate unele alimente de gândire sau de feedback (ştiind mine acest lucru este puţin probabil!).

Pentru mine acest curs a avut ca scop la un nivel prea scăzut. Având în trecut prin ghidul de QuickStart, citeşte Rob Allen lui Zend Framework în acţiune, şi a lucrat cu cadru un pic nu am primit nimic prea mult. Mi-ar plăcea de curs pentru a ridica de la sfârşitul QuickStart şi de a dezvolta abilităţi suplimentare.

Acestea fiind spuse, titlul cursul se afirmă în mod clar "Zend Framework: Fundamentele" şi în acest aspect cursul atinge ceea ce îşi propune să facă. Alţi membri ai echipei de dezvoltare care nu au petrecut timp în căutarea într-un cadru finit fiecare sesiune cu entuziasm şi au adresat întrebări, care a fost cu adevarat frumos sa vezi.

Toţi nu a fost pierdut, a fost bine să-şi petreacă timpul de confirmare a detaliilor de bază ale cadrului şi a ajunge la a pune o pereche de întrebări în zonele în care nu am fost de 100%. A fost, de asemenea, momentul în care am ajuns să se aşeze în fiecare zi şi să se gândească codificare utilizarea cadrului şi proiectele de viitor, ceva ce nu ar fi fost în măsură de a face altfel (va puteti imagina compania ta de acord cu faptul că:?)). Nu in ultimul rand, de asemenea, veţi obţine un certificat de frumos de la Zend să spun că aţi participat la curs (deşi prin e-mail).

Zend Framework de certificare

Aceasta a fost o întrebare care venea în minte în cursul, mi-ar pregăti pentru certificare? Uşor de rapid, este un răsunător nr. Instructorul Cursul a fost destul de clar pe care cu sfaturi suplimentare pentru care certificarea ar trebui să fie utilizaţi într-adevăr cadrul într-o zi de zi si sa se simta foarte confortabil şi încrezător în utilizarea acestuia şi metodologiile.

Rezumat

Având în vedere tot ceea ce am scris mai sus, voi rezuma totul în două puncte bullet uşoară:

  • Nou la Zend Framework: Acest curs face exact ceea ce te-ai astepta, vă oferă o introducere frumos a cadrului şi o pregătire bună la elementele de bază de la care puteţi construi. Cursul pare să genereze interes şi entuziasm pentru cadrul printre dezvoltatorii.
  • De second hand Zend Framework: În timp ce era frumos la ţărm o parte din elementele de bază foarte m-am simţit timp, efort, şi de fonduri pentru a ţine cursul ar putea fi de mai bine cheltuite în altă parte. Acesta va fi frumos să see Zend a crea un nou curs nivel superior pentru a lua dezvoltatorii la nivelul următor. - Cel puţin la standard de certificare şi de dincolo pentru că aş semna imediat.

Jurnal de PB folosind Zend Framework

Prin , marţi 14 aprilie 2009 21:06

Am reuşit să obţină un site în sus şi să fie difuzate cu Zend Framework , totul este frumos de logare pentru Firebug / FirePHP astfel urmatorul pas a fost să vă conectaţi la PB. De asemenea, am vrut să vă conectaţi anumite informaţii suplimentare, utilizând un astfel de cadru în calitate de agent de utilizator, data şi ora, pentru a primi si post variabile. Deci, pentru a extinde manualul un pic aici ce am făcut:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ("prioritate" => "prioritate",
"Mesaj" => "mesaj",
'Datetime' => 'timestamp ",
'User_agent' => 'user_agent ",
'Get_vars' => 'get_vars ",
'Post_vars' => 'post_vars ",
"Sit '=>' site '
);

$ WriterDb = new Zend_Log_Writer_Db ($ db, 'error_logging ", $ columnMapping);
$ Log = new Zend_Log ($ writerDb);

$ Logger-> setEventItem ('datetime', data ('Ymd H: i: s'));
$ Logger-> setEventItem ('user_agent ", $ _SERVER [' HTTP_USER_AGENT ']);
$ Logger-> setEventItem ('get_vars ", print_r ($ _GET, true));
$ Logger-> setEventItem ('post_vars ", print_r ($ _POST, true));
$ Logger-> setEventItem ("sit", site);

$ Logger-> info ("mesaj informaţional ');

În cazul în care cheile în array $ columnMapping sunt nume de coloana mea. "Prioritatea" şi "mesaj" sunt înţelese de către Zend_Log_Writers dar câmpurile suplimentare au fost adăugate să-mi dea unele informaţii suplimentare.

Evident, acest lucru presupune că aţi logarea de lucru, utilizând una dintre altor scriitori prima:)













Tema Panorama de Themocracy

10 vizitatori on-line acum
8 vizitatori, 2 impotriva, 0 membrii
Max vizitatori azi: 16 la 02:02 UTC
Aceasta luna: 16 la 01-09-2011 02:02 UTC
Acest an: 130 la 28-03-2011 22:40 UTC
Tot timpul: 130 la 28-03-2011 10:40 UTC