Kategorie: Zend Framework

Zend Framework Per-Module basieren Einstellungen

Mit , Freitag 1. Januar 2010 10.40 Uhr

Ich habe eine Antwort auf diese Stelle, die weniger Konfiguration erfordert erstellt, siehe Module Based Layout - Zend Framework .

Bei der Verwendung des Zend Framework mit Modulen, ist offensichtlich, dass, wenn Sie verschiedene (Sub-) Seiten sind aus der gleichen Anwendung, die Sie wollen nicht unbedingt das gleiche Layout Skripte für jeden Teil. Ich beschloss, mit den folgenden Website-Struktur gehen:

  / Application
     / Controllers
         ...
     / Modelle
     / Modules
         / Default
             / Controllers
             / Layout
                 / Scripts
             / Views
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Das Problem war die Einrichtung des Layouts Skripte auf einem pro Modul. Die Antwort kam durch den Einsatz einer Aktion Helper. Einrichten des Layouts auf einer pro Modul umfasst drei Schritte:

  1. Application.ini (oder ähnliche Konfiguration Setup):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / layouts / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / layouts / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / member / layouts / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / layouts / scripts" 
  2. Erstellen Sie Ihre Aktion Helper:
      <? Php
     / **
      * Setzt das Layout Pfad auf einem pro Modul
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Seit 2010-01-01
      * /
     Klasse Pro_Controller_Action_Helper_SetLayoutPath
         erstreckt Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Setzt Layout-Pfad basierend auf Modul
          * /
         public function preDispatch ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['Ressourcen'] ['layout'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['Ressourcen'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("Layout")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Und schließlich Bootstrap der Action Helfer:
     ...  / ** * Stellt Layout Skripte auf einem pro Modul * / protected function _initLayoutHelper () {$ this-> bootstrap ('frontController'); $ layout = Zend_Controller_Action_HelperBroker:: addHelper (neue Pro_Controller_Action_Helper_SetLayoutPath ());} .. . 

Lehre: DATETIME default NOW ()

Mit , Mittwoch 30. Dezember 2009 06.30 Uhr

Ich habe mit dem Aufbau einer Datenbank-Schema für eine neue gekämpft Zend Framework -Projekt. Ich bin mit verwenden möchten, Doctrine ORM für meine Datenbank-Modelle. Ich brauche zum Einrichten des Schemas, so dass es mich zu einem Standardformat für Datum und Zeit für ein `datetime` Spalte, zB erlaubt, wenn eine neue Nachricht bekomme ich den aktuellen Zeitstempel. Nach langem Suchen und Experimentieren fand ich die Lösung, damit ich teilen es bin.

In das Schema YAML -Datei einfach folgendes tun:

 Nachricht:
   ActAs:
     Timestampable:
       erstellt:
         Name: created_at
         Typ: timestamp
         Format: Ymd H: i: s
       Stand:
         Name: last_updated
         Typ: timestamp
         Format: Ymd H: i: s
   Spalten:
     ID:
       Typ: integer
       Primär: true
       autoincrement: true
     Name: string (255)
     E-Mail: string (300)
     Nachricht: string (2000)

Wenn auf der anderen Seite Sie nicht möchten, eine `updated_at` Spalte können Sie die folgenden:

 Nachricht:
   ActAs:
     Timestampable:
       erstellt:
         Name: created_at
         Typ: timestamp
         Format: Ymd H: i: s
       Stand:
         Behinderte: true
   Spalten:
     ID:
       Typ: integer
       Primär: true
       autoincrement: true
     Name: string (255)
     E-Mail: string (300)
     Nachricht: string (2000)

Zend Framework: Grundlagen - Review

Mit , Samstag 28. November 2009 22.42 Uhr

Mein Arbeitgeber vor kurzem für eine Gruppe von uns Entwickler bezahlt, die zu Zend Framework: Grundlagen natürlich hier werde ich meine Gedanken und Meinungen über den Verlauf für andere zusammenfassen. Für diejenigen, um Zeit zu sparen, hier ist meine Zusammenfassung:

Für Entwickler, die nicht Zeit gehabt haben, ein Blick auf die Zend Framework diesem Kurs (Zend Framework: Grundlagen) bietet einen guten Überblick über die Rahmenbedingungen stellen Ihnen die wichtigsten Bereiche und geben genügend Informationen, um fortzufahren. Für diejenigen, die Zeit damit verbracht haben Blick auf den Rahmen und haben anschließend ein oder zwei Tutorials dieser Kurs nicht viel darüber hinaus.

Hintergrund

Ich bin ein PHP -Entwickler für etwa 5-6 Jahre, und haben begonnen, die Arbeit mit dem Zend Framework auf einem Bauteil Basis in den letzten 6 Monaten. Ich habe entwickelt und / oder bereits ein Entwickler auf ein paar kleine Zend Framework MVC sites. ich ehrlich sein werde, habe ich nicht eine riesige Menge der Exposition gegenüber anderen Frameworks aus einer Kodierung Sicht, sondern habe mehrere Stunde der Erforschung der Projekt-Websites und Auswertung them. Der Rahmen und die Gemeinde umgebenden Zend Framework ist es sehr aufregend, und es scheint, riesige Möglichkeiten in denen seine gehen werden.

Über den Kurs

Der Kurs ist über 9 2 Stunden WebEx-Sitzungen geliefert (mit einem 10-minütigen Pause in der Mitte). Die Zeit wird verbracht werde durch eine Reihe von Dias von Zend mit Diskussion vorgesehen ist jederzeit möglich. Sie können ein Mikrofon an den Lehrer zu sprechen, aber um ehrlich zu sein ich habe niemanden gesehen Nutzung nichts mehr als das Chat-Fenster. Zusätzlich wird eine VMWare Ubuntu-Rechner vorgesehen, die Beispiel-Code und Projekte einen eine Testversion von Zend Studio. Der Kursleiter spricht mit den Teilnehmern entweder über eine integrierte VoIP-Lösung, oder Sie können sich mit einem der vielen weltweiten Einwahlnummern wählen.

Im Laufe des Materials besteht aus einem kurzen Überblick über das Rahmenprogramm und das MVC-Muster, bevor in eine Probe Gästebuch-Anwendung. Die Diskussion zeigte Bootstrapping Zend_Application, DB-Tabellen, Datenbank-Zugriff, Formulare, Filtering, ACL,, Validierung etc, etc. Grundsätzlich für alle Themen, die Sie benötigen, um eine grundlegende Website einen die ganze Zeit laufen zu bekommen gibt Ihnen die Werkzeuge, um würden gehen und weiter fortgeschritten, die im Rahmen (auch wenn dieser Betrag war zu "Siehe die Website 'viel von der Zeit).

Die Zeit ist da, um Code auf ein paar Beispiele, und die "Gästebuch" und einfach "Wiki"-Anwendung zu entwickeln. Persönlich fühlte ich, dass die Bereitstellung des Codes oder jedes app und dann fragen Sie uns zu entwickeln, was im Wesentlichen eine Kopie der Seite nicht wirklich eine gute Lernerfahrung. Ich hätte es vorgezogen, eine Anwendung ähnlich entwickeln, aber nicht identisch. auf das Beispiel-Anwendung mit dem Vorteil, dass eine Führung zu verweisen. Alternativ Bau der Anwendungen von Grund auf mit dem Demonstrator würde möglicherweise mehr Fragen, warum und wie geführt, wodurch sich ein besseres Verständnis für die Rahmenbedingungen, nach all you can nachschlagen Besonderheiten nach dem Kurs.

Der letzte Vortrag bestand aus Arbeiten an der Wiki-Anwendung mit Hilfe / Anleitung durch die Ausbilder. Nach dem Kurs Feedback genommen wurde, war es mehrfach betont durch den Kurs, dass Zend nimmt Feedback sehr ernst, in der Tat offensichtlich unsere Version des Kurses war ganz neu. Einige der anderen Entwickler in den Unternehmen wird den Kurs bald so wird es interessant sein zu sehen, ob dies geschehen ist.

Der Kurs Stil war informell, darf für Rückfragen und Zusammenarbeit zwischen Teilnehmern und dem Lehrer. Die Kursleiterin war freundlich, zugänglich (E-Mail-Adressen wurden für Fragen gemeinsam), und während seines Vortrags aus dem Schlitten war ein bisschen wackelig schien voll geschäftsfähig im Rahmen. Er war eindeutig jemand, der die Rahmenbedingungen regelmäßig eher als jemand, der lehrte, den Kurs zu unterrichten wird, mochte ich die 'realen Welt' Erfahrung in dieser Hinsicht.

Insgesamt fühlen

In gewisser Weise fand ich das natürlich eine Verschwendung von Zeit, in anderen war es sehr praktisch. Hoffentlich werde ich meine Gründe ganz klar zu bekommen, und vielleicht bieten einige Denkanstöße oder nützliches Feedback (knowing me dies unwahrscheinlich ist!).

Für mich war dieser Kurs bei zu niedriger Ebene. Nachdem sich durch den Schnellstart-Anleitungen, lesen Sie Rob Allen ist Zend Framework in Action, und arbeitete mit dem Framework ein wenig ich nicht wirklich bekommen etwas zu viel. Ich würde gerne den Kurs zu holen aus dem Ende des Schnellstart und zusätzliche Fähigkeiten.

Das heißt, wird der Titel des Kurses deutlich state "Zend Framework: Grundlagen" und in diesem Aspekt den Kurs erreicht, was es setzt zu tun. Weitere Mitglieder des Entwicklungsteams, die nicht die Zeit verbracht haben, suchen in den Rahmen fertig jeder Sitzung mit Begeisterung und Fragen das war wirklich schön zu sehen.

Alles war nicht verloren, es war gut, Zeit zu verbringen Bestätigung der grundlegenden Details des Frameworks und lernen Sie ein paar Fragen in Bereichen, in denen ich war nicht 100% zu stellen. Es wurde auch Zeit, dass ich mich setzen jeden Tag und denke über Codierung mit Rahmen und zukünftige Projekte, etwas, das ich nicht der Lage gewesen wäre, es anders zu machen (können Sie sich vorstellen Ihr Unternehmen vereinbaren, dass?) Bekam). Last but not least erhalten Sie auch ein schönes Zertifikat von Zend zu sagen, dass Sie den Kurs (wenn auch per E-Mail) besucht.

Zend Framework Zertifizierung

Dies war eine Frage, die den Sinn kämen, während der Kurs gehalten, wäre es bereite mir für die Zertifizierung? Die schnelle, einfache ist ein klares Nein. Der Kursleiter war ganz klar auf, dass mit dem zusätzlichen Hinweis, dass für die Zertifizierung, sollten Sie wirklich mit dem Rahmen an einem Tag zu Tag und fühle mich sehr wohl und zuversichtlich in seine Nutzung und Methoden.

Zusammenfassung

Da alles, was ich oben geschrieben habe, werde ich alles in zwei einfachen Stichpunkten zusammenfassen:

  • Neu auf Zend Framework: Dieser Kurs ist genau das, was man erwarten würde, gibt es Ihnen eine gute Einführung in die Rahmenbedingungen und eine gute Erdung über die Grundlagen, aus denen Sie aufbauen können. Der Kurs scheint Interesse und Begeisterung für das Rahmenprogramm unter Entwicklern zu generieren.
  • Gebrauchte dem Zend Framework: Während es schön war, Ufer, einige der wichtigsten Grundlagen spürte ich die Zeit, Mühe und Geld, um den Kurs könnte besser gewesen verbrachte anderswo. Es wird schön sein, SEEA Zend erstellen Sie ein neues höheres Niveau natürlich die Entwickler auf die nächste Stufe zu nehmen -. Zumindest den Standard der Zertifizierung und darüber hinaus Dafür würde ich unterschreiben sofort.

Melden Sie sich an die DB mit dem Zend Framework

Mit , Dienstag 14. April 2009 21.06 Uhr

Ich habe es geschafft, eine Website zum Laufen zu bringen mit dem Zend Framework , alles ist schön Protokollierung FireBug / FirePHP so nächste Schritt, um die DB-Protokoll wurde. Ich wollte auch einige zusätzliche Informationen über die Rahmenbedingungen wie User-Agent, Datum und Uhrzeit, GET und POST-Variablen log. So erweitern das Handbuch ein wenig hier, was ich getan habe:

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

$ ColumnMapping = array ('priority' => 'Priorität',
'Message' => 'Nachricht',
'Datetime' => 'Zeitstempel',
"User_agent '=>' user_agent"
"Get_vars '=>' get_vars"
"Post_vars '=>' post_vars"
'Site' => 'Ort'
);

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

$ Logger-> setEventItem ('datetime', date ('H Ymd: 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 ("Standort", SITE);

$ Logger-> info ('Informative Nachricht');

Wo die Schlüssel von Arrays in $ ColumnMapping sind meine Spaltennamen. "Priority" und "Nachricht" durch verstanden Zend_Log_Writers aber die zusätzlichen Felder wurden hinzugefügt, um mir ein paar zusätzliche Informationen.

Natürlich setzt dies voraus, dass Sie die Protokollierung arbeitet mit einer der anderen Autoren zuerst:)













Panorama Theme by Themocracy

7 Besuchern jetzt online
6 Personen, 1 Bots, 0 Mitglieder
Max Besucher heute: 16 um 02:02 UTC
Diesen Monat: 16 am 2011.01.09 02.02 UTC
Dieses Jahr: 130 am 28-03-2011 10.40 UTC
Insgesamt: 130 am 28-03-2011 22.40 UTC