Kategori: Zend Framework

Zend Framework Per-modul baseret indstillinger

Ved , Fredag ​​1 Jan 2010 22:40

Jeg har oprettet en opfølgning til dette indlæg, som kræver mindre konfiguration, se Modul baseret layout - Zend Framework .

Ved brug af Zend Framework med moduler, dens indlysende, at hvis du kører forskellige (sub-) steder fra samme program, du ikke nødvendigvis vil have samme layout scripts for hver del. Jeg besluttede at gå med følgende websted struktur:

  / Anvendelse
     / Controllere
         ...
     / Modeller
     / Moduler
         / Default
             / Controllere
             / Layout
                 / Scripts
             / Visninger
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problemet var at oprette layoutet scripts på en per-modul basis. Svaret kom igennem ved hjælp af en Handling Helper. Opsætning af layout på en per-modul grundlag omfatter tre trin:

  1. Application.ini (eller lignende konfiguration opsætning):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layout / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layout / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / Medlem / layout / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / layout / scripts" 
  2. Opret din Handling Helper:
      <? Php
     / **
      * Sætter layoutet sti på en per-modul grundlag
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Siden 2010/01/01
      * /
     klasse Pro_Controller_Action_Helper_SetLayoutPath
         udvider Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Indstiller layout vej baseret på modul
          * /
         offentlig funktion preDispatch ()
         {
        	 $ Modul = $ this-> GetRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modul] ['ressourcer'] ['Layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ modul] ['ressourcer'] ['Layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('Layout')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Og endelig boostrap handlingen hjælper:
      ...
         / **
          * Indstiller op layoutet scripts på en per-modul grundlag
          * /
         beskyttet funktion _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         nye Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Lære: DATETIME standard NU ()

Ved , onsdag 30 december, 2009 18:30

Jeg har kæmpet med at oprette en database skema for en ny Zend Framework -projekt. Jeg er hjælp prøver at bruge Lære ORM til min database modeller. Jeg har brug for at oprette det skema, så det tilladt mig at sætte en standard dato og tid til en `datetime` kolonnen, fx når der tilføjes en ny besked jeg får de aktuelle tidsstempel. Efter megen søgen og eksperimenterer jeg fundet løsningen, så jeg deler den.

I dit skema YAML fil blot gøre følgende:

 Besked:
   actAs:
     Timestampable:
       Oprettet:
         navn: created_at
         type: tidsstempel
         Format: Ymd H: i: s
       opdateret:
         navn: last_updated
         type: tidsstempel
         Format: Ymd H: i: s
   kolonner:
     id:
       type: heltal
       primære: sandt
       autoincrement: sandt
     Navn: string (255)
     e-mail: string (300)
     besked: string (2000)

Hvis på den anden hånd, du ikke ønsker et `updated_at` kolonnen, kan du bruge følgende:

 Besked:
   actAs:
     Timestampable:
       Oprettet:
         navn: created_at
         type: tidsstempel
         Format: Ymd H: i: s
       opdateret:
         deaktiveret: sandt
   kolonner:
     id:
       type: heltal
       primære: sandt
       autoincrement: sandt
     Navn: string (255)
     e-mail: string (300)
     besked: string (2000)

Zend Framework: Fundamentals - Anmeldelse

Ved , lørdag 28 november 2009 22:42

Min arbejdsgiver for nylig betalt for en gruppe af os udviklere at tage Zend Framework: Fundamentals kursus, her vil jeg sammenfatte mine tanker og udtalelser om kurset for andre. For dem, der ønsker at spare tid, er her mit resumé:

For udviklere, der ikke har haft tid til at se på Zend Framework dette kursus (Zend Framework: Fundamentals) giver et godt samlet billede af de rammer, at indføre dig til de centrale områder og give tilstrækkelige oplysninger med henblik på at fortsætte. For dem, der har brugt tid på at kigge på de rammer og har fulgt en eller to tutorials dette kursus giver ikke meget ud over.

Baggrund

Jeg har været en PHP udvikler for omkring 5-6 år, og er begyndt at arbejde med Zend Framework på en komponent grundlag over de sidste 6 måneder. Jeg har udviklet og / eller været en udvikler på et par små Zend Framework MVC sites. vil jeg være ærlig, har jeg ikke haft en enorm mængde af udsættelse for andre rammer fra en kodning synspunkt, men har tilbragt flere timer forsker i projektet, websites og evaluering them. Rammerne og fællesskabet omkring Zend Framework det er ganske spændende, og der synes at være store muligheder i, hvor dens vej hen.

Om kurset

Kurset er leveret over 9 to timer WebEx sessioner (med en 10-minutters pause i midten). Den tid går at gå gennem et sæt af slides fra Zend med diskussion til enhver tid. Du kan bruge en mikrofon til at tale med instruktøren, men for at være ærlig jeg ikke se nogen bruge noget mere end chat-vinduet. Dertil kommer en VMWare Ubuntu maskine er forudsat, at der er eksempel kode og projekter oprettet en en prøveversion af Zend Studio. Kurset leder taler med deltagerne enten over en integreret VoIP-løsning, eller du kan ringe op ved hjælp af en af ​​de mange verdensomspændende dial-in numre.

I løbet af kurset Materialet består af en kort oversigt over rammerne og MVC mønstret inden turen går til en prøve gæstebog ansøgning. Diskussionen viste bootstrapping, Zend_Application, DB tabeller, databaseadgang, Forms, filtrering, ACL, validering osv. osv. Dybest set dækker alle de emner, du vil kræve at få en grundlæggende websted oprette en kørende hele tiden giver dig værktøjer til at gå hen og få mere avancerede inden for rammerne (selv om dette var tale om 'Se hjemmesiden "meget af tiden).

Tid er givet til at kode nogle eksempler, og at udvikle den "gæstebog" og simple "wiki" ansøgning. Personligt følte jeg, at give koden eller hver app, og derefter beder os om at udvikle, hvad der var det væsentlige en kopi sammen med ikke rigtig give en god og lærerig oplevelse. Jeg ville have foretrukket at udvikle et program som ligner, men ikke identiske. til eksempel ansøgning med fordelen ved at have en guide til at henvise til. Alternativt kan bygge applikationer fra bunden med demonstrator vil af eventuelt førte til flere spørgsmål om, hvorfor og hvordan, hvilket giver en bedre forståelse af rammerne, når alt hvad du kan se op detaljerne efter kurset.

Den sidste forelæsning bestod af arbejde på wiki ansøgningen med hjælp / vejledning fra instruktøren. Efter kurset tilbagemeldinger blev taget, blev det understreget flere gange gennem kurset, at Zend tager tilbagemeldinger meget alvorligt, i virkeligheden tilsyneladende vores version af kurset var ganske nyt. Nogle af de andre udviklere i selskabet vil tage kurset snart, så det bliver interessant at se, om dette er sket.

Kurset Stilen var uformelt, tilladt for feedback og samarbejde mellem deltagere og instruktør. Kurset leder var venlige, ubureaukratiske (e-mail adresser er blevet delt i spørgsmål), og mens hans præsentation fra slides var lidt usikker syntes fuldt ud kompetente inden for rammerne. Han var tydeligvis en person, der brugte rammer på regelmæssig basis i stedet for nogen, der er oplært til at undervise i kurset, jeg kunne godt lide den "virkelige verden erfaring i den henseende.

Samlet Feeling

På nogle måder fandt jeg selvfølgelig et spild af tid, i andre var det meget handy. Forhåbentlig får jeg mine grunde går tydeligt igennem, og måske give nogle stof til eftertanke eller nyttig feedback (at kende mig, det er usandsynligt!).

For mig dette kursus var rettet mod et for lavt niveau. At have gået gennem quickstart guide, skal du læse Rob Allens Zend Framework i aktion, og arbejdede med de rammer lidt jeg fik ikke rigtig noget for meget. Jeg ville i kunne lide kurset at hente fra slutningen af ​​QuickStart og udvikle flere færdigheder.

Når det er sagt, kurset titlen ikke klart fremgå, "Zend Framework: Fundamentals" og i dette aspekt kurset opnår, hvad det formål at gøre. Andre medlemmer af udviklingsteamet, der ikke har brugt tid på at kigge ind i de rammer færdige hver session med entusiasme og stillede spørgsmål, som var virkelig rart at se.

Alt var ikke tabt, det var godt at bruge tid på at bekræfte de grundlæggende oplysninger i rammen og komme til at stille et par spørgsmål i områder, hvor jeg ikke var 100%. Det var også på tide, at jeg kom til at sidde ned hver dag og tænke over kodning ved hjælp af rammer og fremtidige projekter, noget, jeg ville ikke været i stand til at gøre noget andet (kan du forestille dig din virksomhed at acceptere, at:?)). Sidst men ikke mindst får du også en dejlig certifikat fra Zend at sige, at du har deltaget i kurset (om end via e-mail).

Zend Framework Certificering

Det var et spørgsmål, der blev ved at komme til at tænke på i løbet af kurset, ville det forberede mig til certificering? Den hurtige, let er et rungende nej. Kurset instruktør var helt klar på, at med de ekstra råd, for certificering bør du virkelig skal bruge rammer på en dag til dag og føler mig meget komfortabel og sikker på dens brug og metoder.

Resumé

I betragtning af alt det jeg har skrevet ovenfor, vil jeg opsummere det hele i to nemme punktform:

  • Ny på Zend Framework: Dette kursus gør præcis, hvad du ville forvente, det giver dig en fin introduktion til de rammer og en god jordforbindelse på det grundlæggende, hvorfra du kan bygge. Kurset ser ud til at skabe interesse og entusiasme for rammerne blandt udviklerne.
  • Brugt Zend Framework: Selv om det var rart at afstive nogle af de meget grundlæggende Jeg følte tid, kræfter og midler til at tage kurset kunne af været bedre brugt andre steder. Det vil være rart at SEEA Zend oprette et nyt højere niveau selvfølgelig at tage udviklere til det næste niveau. - I det mindste at standarden for certificering og ud over For at jeg ville melde sig med det samme.

Log på DB bruger Zend Framework

Ved , Tirsdag 14 April 2009 21:06

Jeg har formået at få en hjemmeside op at køre med Zend Framework , er alt logge pænt til Firebug / FirePHP så næste skridt var at logge på DB. Jeg ønskede også at logge nogle supplerende oplysninger ved hjælp af den ramme som bruger agent, dato og tid, GET og POST variabler. Så for at forlænge den manuelle lidt her er, hvad jeg gjorde:

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

$ ColumnMapping = array ('prioriterede' => 'prioritet «,
'Budskab' => 'besked',
'Datetime' => 'tidsstempel',
'User_agent' => 'user_agent',
'Get_vars' => 'get_vars',
'Post_vars' => 'post_vars',
'Site' => 'site'
);

$ WriterDb = nye Zend_Log_Writer_Db ($ db, 'error_logging', $ columnMapping);
$ Logger = nye Zend_Log ($ writerDb);

$ Skovhugger-> setEventItem ('datetime', date ('Ymd H: i: s'));
$ Skovhugger-> setEventItem ('user_agent', $ _SERVER ['HTTP_USER_AGENT']);
$ Skovhugger-> setEventItem ('get_vars', print_r ($ _GET, sand));
$ Skovhugger-> setEventItem ('post_vars', print_r ($ _POST, sande));
$ Skovhugger-> setEventItem ('site', SITE);

$ Skovhugger-> info ('Informational besked');

Hvor array nøglerne i $ columnMapping er mine kolonnenavne. 'Priority' og 'besked' forstås af Zend_Log_Writers men de ekstra felter, blev tilføjet for at give mig nogle yderligere oplysninger.

Naturligvis er dette forudsætter, at du har logget arbejder ved hjælp af en af ​​de andre forfattere først:)













Panorama Tema ved Themocracy

6 besøgende online nu
1 gæster, 5 bots, 0 medlemmer
Max besøgende i dag: 14 kl 8:16 UTC
Denne måned: 48 på 2011/12/09 02:18 UTC
I år: 130 kl 28-03-2011 22:40 UTC
Al tid: 130 kl 28-03-2011 10:40 UTC