Kategori: Zend Framework

Zend Framework Per-modul baserte innstillinger

Ved , fredag ​​1 januar 2010 22:40

Jeg har opprettet en oppfølging til dette innlegget som krever mindre konfigurasjon, se Modul Basert Layout - Zend Framework .

Når du bruker Zend Framework med moduler, dets åpenbart at hvis du kjører forskjellige (sub-) sider av samme program du ikke nødvendigvis vil ha samme layout skriptene for hver del. Jeg bestemte meg for å gå med på følgende område struktur:

  / Application
     / Kontrollere
         ...
     / Modeller
     / Moduler
         / Default
             / Kontrollere
             / Layout
                 / Scripts
             / Visninger
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problemet var å sette opp oppsettet skript på en per-modul basis. Svaret kom gjennom ved hjelp av en handling Helper. Sette opp layoutene på en per-modul basis involverer tre trinn:

  1. Application.ini (eller lignende konfigurasjonsoppsettet):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ moduler / admin / oppsett / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ moduler / default / oppsett / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ moduler / medlem / oppsett / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ moduler / affiliate / oppsett / scripts" 
  2. Lag din Handling Helper:
      <? Php
     / **
      * Setter layout banen på en per-modul basis
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Siden 2010-01-01
      * /
     klasse Pro_Controller_Action_Helper_SetLayoutPath
         strekker Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Setter layout sti basert på modul
          * /
         offentlig funksjon preDispatch ()
         {
        	 $ Modul = $ this-> GetRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (Isset ($ config [$ modul] ['ressursene'] ['layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ modul] ['ressursene'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("layout")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Og til slutt boostrap handlingen hjelper:
      ...
         / **
          * Setter opp layout skript på en per-modul basis
          * /
         beskyttet funksjon _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ('frontController');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         nye Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Lære: DATETIME default NÅ ()

Ved 30. Onsdag desember 2009 18:30

Jeg har slitt med å sette opp et databaseskjema for et nytt Zend Framework prosjekt. Jeg bruker prøver å bruke Lære ORM for min database modeller. Jeg trenger å sette opp skjemaet slik at det tillot meg å sette en standard dato og tid for en `datetime` kolonne, f.eks når du legger til en ny melding jeg få den gjeldende tidsstempel. Etter mye leting og eksperimentering fant jeg løsningen, så jeg deler det.

I ditt skjema YAML fil bare gjøre følgende:

 Melding:
   Actas:
     Timestampable:
       opprettet:
         navn: created_at
         type: timestamp
         format: Ymd H: i: s
       Oppdatert:
         navn: last_updated
         type: timestamp
         format: Ymd H: i: s
   kolonner:
     id:
       type: heltall
       primære: true
       autoincrement: true
     navn: string (255)
     email: string (300)
     message: string (2000)

Hvis derimot du ikke ønsker en `updated_at` kolonne kan du bruke følgende:

 Melding:
   Actas:
     Timestampable:
       opprettet:
         navn: created_at
         type: timestamp
         format: Ymd H: i: s
       Oppdatert:
         deaktivert: true
   kolonner:
     id:
       type: heltall
       primære: true
       autoincrement: true
     navn: string (255)
     email: string (300)
     message: string (2000)

Zend Framework: Fundamentals - gjennomgang

Ved , lørdag 28 november 2009 22:42

Min arbeidsgiver nylig betalt for en gruppe av oss utviklere til å ta Zend Framework: Fundamentals selvfølgelig, her skal jeg oppsummere mine tanker og meninger på kurs for andre. For de som ønsker å spare tid, her er min oppsummering:

For utviklere som ikke har hatt tid til å se på Zend Framework dette kurset (Zend Framework: Fundamentals) tilbyr et godt helhetlig bilde av rammeverket introdusere deg til sentrale områder og gi nok informasjon for å fortsette. For de som har brukt tid på å se på rammene og har fulgt ett eller to tutorials dette kurset ikke tilbyr mye utover.

Bakgrunn

Jeg har vært en PHP utvikler for rundt 5-6 år, og har startet arbeidet med Zend Framework på en komponent basis i løpet av de siste 6 månedene. Jeg har utviklet og / eller vært en utvikler på et par små Zend Framework MVC sites. Jeg skal være ærlig, jeg har ikke hatt en enorm mengde eksponering for andre rammeverk fra et koding synspunkt, men har brukt flere timer å forske på prosjektet nettsteder og vurdere them. Rammeverket og samfunnet rundt Zend Framework det er ganske spennende, og det synes å være store muligheter der de går.

Om kurset

Kurset er levert over 9 to timers WebEx økter (med en 10-minutters pause i midten). Den tid går gjennom et sett av lysbilder fra Zend med diskusjon når som helst. Du kan bruke en mikrofon til å snakke med instruktøren, men for å være ærlig jeg ikke se noen bruke noe mer enn chattevinduet. I tillegg er en VMWare Ubuntu maskin er forutsatt som har eksempel-kode og prosjekter satt opp en en prøveversjon av Zend Studio. Kurset leder snakker til deltakerne enten over en integrert VoIP-løsning, eller du kan ringe i å bruke en av de mange verdensomspennende ringe inn tall.

I løpet av materialet består av en kort oversikt over Framework og MVC mønsteret før du begir deg inn i en prøve gjestebok søknad. Diskusjonen viste bootstrapping, Zend_Application, Db Tabeller, databasetilgang, Skjemaer Filtering, ACL, Validating, etc, etc. I utgangspunktet dekker alle emnene du vil kreve å få en grunnleggende side opp en kjører hele tiden gir deg verktøy til å gå og få mer avanserte i rammen (selv om dette gjorde beløpet til "Se nettsiden" mye av tiden).

Tid gis til å kode opp noen eksempler, og å utvikle "gjestebok" og enkle 'wiki' søknad. Personlig følte jeg at det å tilby koden eller hver app og deretter be oss om å utvikle det i hovedsak var en kopi sammen egentlig ikke gir en god erfaring. Jeg ville ha foretrukket å utvikle et program lignende, men ikke identiske. til eksemplet søknaden med fordelen av å ha en guide å referere til. Alternativt bygge søknader fra scratch med demonstrator ville av muligens førte til flere spørsmål om hvorfor og hvordan, og dermed gi en bedre forståelse av rammeverket, tross alt kan du slå opp detaljene etter kurset.

Den siste forelesningen bestod av arbeider på wikien søknad med hjelp / veiledning fra instruktør. Etter kurset tilbakemeldinger ble tatt, ble det understreket flere ganger gjennom kurset som Zend tar tilbakemeldingene svært alvorlig, faktisk tilsynelatende vår versjon av kurset var ganske ny. Noen av de andre utviklerne i selskapet vil ta kurset snart så det vil være interessant å se om dette har skjedd.

Kurset stilen var uformell, tillatt for tilbakemeldinger og samarbeid mellom deltakere og instruktør. Kurset leder var vennlig, imøtekommende (e-postadresser ble delt for spørsmål), og mens hans presentasjon fra lysbildene var litt vaklende virket fullt kompetente i rammeverket. Han var tydelig noen som brukte rammeverket på en jevnlig basis fremfor noen som er opplært til å undervise i kurset, jeg likte den "virkelige verden" erfaring i så måte.

Overall Feeling

På noen måter fant jeg selvfølgelig en bortkastet tid, i andre var det veldig hendig. Forhåpentligvis får jeg mine grunner tvers tydelig, og kanskje gi noen tankevekkere eller nyttige tilbakemeldinger (kjenne meg er dette usannsynlig!).

For meg selv dette kurset var rettet mot et for lavt nivå. Etter å ha gått gjennom QuickStart guide, les Rob Allen Zend Framework in Action, og jobbet med rammene litt jeg egentlig ikke få noe for mye. Jeg ville av likte selvsagt å plukke opp fra slutten av QuickStart og utvikle flere ferdigheter.

Når det er sagt, gjør kurstittel klart state "Zend Framework: Fundamentals" og i det aspektet kurset oppnår det den setter seg fore å gjøre. Andre medlemmer av utviklingsteamet som ikke har brukt tid på å se inn i rammeverket ferdig hver sesjon med entusiasme og stilte spørsmål som var veldig hyggelig å se.

Alt var ikke tapt, det var godt å tilbringe tid bekrefter de grunnleggende detaljene av rammeverket og få å stille et par spørsmål på områder hvor jeg ikke var 100%. Det ble også tid som jeg fikk sitte ned hver dag og tenke koding bruker rammeverket og fremtidige prosjekter, noe jeg ikke ville av vært i stand til å gjøre noe annet (kan du forestille deg din bedrift å akseptere at:?)). Sist men ikke minst du får også en fin attest fra Zend å si at du deltok på kurset (riktignok via e-post).

Zend Framework Certification

Dette var ett spørsmål som holdt kommer til bakhodet underveis, det ville forberede meg for sertifisering? Den raske, enkle er et rungende Nei. Faglærer var ganske tydelig på at med den ekstra råd som for sertifisering bør du virkelig skal bruke rammeverket på en dag til dag basis, og føler meg veldig komfortabel og trygg i sin bruk og metoder.

Oppsummering

Gitt alt jeg har skrevet ovenfor, vil jeg oppsummere alt i to enkle punkter:

  • Ny med Zend Framework: Dette kurset gjør akkurat det du forventer, det gir deg en fin innføring i rammeverket og en god jording på det grunnleggende som du kan bygge. Kurset ser ut til å skape interesse og entusiasme for rammen blant utviklere.
  • Brukte Zend Framework: Mens det var fint å shore opp noen av de svært grunnleggende Jeg følte tid, krefter og midler til å ta kurset kunne av vært brukt bedre andre steder. Det vil være fint å see Zend opprette en ny høyere nivå selvfølgelig å ta utviklere til neste nivå -. Minst til standarden på sertifisering og utover for det ville jeg registrere meg umiddelbart.

Loggen til DB bruke Zend Framework

Ved 14. Tirsdag april 2009 21:06

Jeg har klart å få et nettsted oppe og går med Zend Framework , er alt logging pent til Firebug / FirePHP så neste skritt var å logge på DB. Jeg ønsket også å logge noen ytterligere informasjon ved hjelp av rammeverket som user agent, dato og tid, få og etter variabler. Så for å utvide den manuelle litt her er hva jeg gjorde:

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

$ ColumnMapping = array ('prioritert' => 'prioritert',
'Message' => 'melding',
'Datetime' => 'timestamp',
'User_agent' => 'user_agent',
'Get_vars' => 'get_vars',
'Post_vars' => 'post_vars',
'Nettstedet' => 'nettstedet'
);

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

$ Logger-> setEventItem ('datetime', date ('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 ('nettstedet', SITE);

$ Logger-> info ('Informational melding');

Der array nøklene i $ columnMapping er mine kolonnenavn. "Priority" og "budskap" er forstått av Zend_Log_Writers men den ekstra felt ble lagt for å gi meg noen flere opplysninger.

Selvfølgelig er dette forutsetter at du har logget jobbe med en av de andre forfatterne først:)













Panorama Theme by Themocracy

9 besøkende online nå
7 gjester, 2 roboter, 0 medlemmer
Maks besøkende i dag: 16 kl 02:02 UTC
Denne måneden: 16 kl 01-09-2011 02:02 UTC
I år: 130 på 28-03-2011 22:40 UTC
All time: 130 på 28-03-2011 10:40 UTC