Kategoria: Zend Framework

Zend Framework za moduł placówkach

Przez , piątek 01 stycznia 2010 22:40

Stworzyłem nawiązaniu do tego postu, która wymaga mniej konfiguracji, patrz Moduł podstawie układu - Zend Framework .

Przy użyciu Zend Framework z modułów, że jeśli używasz różnych (pod) strony od samej aplikacji nie koniecznie chcą tego samego oczywistych skrypty układ dla każdej części. Postanowiłem pójść z następującą strukturę strony:

  / Application
     / Controllers
         ...
     / Modeli
     / Modules
         / Default
             / Controllers
             / Układ
                 / Scripts
             / Views
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problem polegał na tworzeniu skryptów układ na zasadzie per-moduł. Odpowiedź przyszła za pomocą Helper działania. Konfigurowanie układów na zasadzie per-moduł z trzech etapów:

  1. Application.ini (lub podobnych ustawień konfiguracyjnych):
      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. Tworzenie Helper działania:
      <? Php
     / **
      * Ustawia ścieżkę układ na zasadzie per-moduł
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Od 01.01.2010
      * /
     klasy Pro_Controller_Action_Helper_SetLayoutPath
         rozciąga Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Ustawia ścieżkę układ oparty na module
          * /
         publicznych preDispatch function ()
         {
        	 $ Module = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['zasobów'] ['układ'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['zasobów'] ['układ'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("układ")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. I wreszcie boostrap pomocnika działania:
      ...
         / **
          * Ustawia skrypty układ na zasadzie per-moduł
          * /
         Funkcja ochrony _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ("frontController ');
    	     $ Layout = Zend_Controller_Action_HelperBroker:: addHelper (
    	         nowych Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Doktryna: default DATETIME NOW ()

Przez , środa 30 grudnia 2009 18:30

Byłem zmaga się z utworzenia schematu bazy danych na nowy Zend Framework projektu. Jestem za pomocą próbuje używać Doctrine ORM dla moich modeli, bazy danych. I potrzeba utworzenia schematu tak, że pozwolił mi ustawić domyślną datę i czas na `datetime` kolumny, np. po dodaniu nowej wiadomości pojawia się aktualny timestamp. Po długich poszukiwaniach i eksperymentowanie znalazłem rozwiązanie, więc jestem jego udostępniania.

W schemacie YAML plik, wykonaj następujące czynności:

 Wiadomość:
   actAs:
     Timestampable:
       utworzony:
         Imię: created_at
         Typ: timestamp
         format: Ymd H: i: s
       aktualizacja:
         Imię: last_updated
         Typ: timestamp
         format: Ymd H: i: s
   kolumny:
     id:
       typ: integer
       podstawowej: true
       autoincrement: true
     nazwa: string (255)
     email: string (300)
     wiadomości: smyczkowy (2000)

Jeśli natomiast nie chcesz `updated_at` kolumnie można użyć następujących czynności:

 Wiadomość:
   actAs:
     Timestampable:
       utworzony:
         Imię: created_at
         Typ: timestamp
         format: Ymd H: i: s
       aktualizacja:
         osób niepełnosprawnych: prawda
   kolumny:
     id:
       typ: integer
       podstawowej: true
       autoincrement: true
     nazwa: string (255)
     email: string (300)
     wiadomości: smyczkowy (2000)

Zend Framework: Podstawy - Przegląd

Przez , sobota 28 listopada 2009 22:42

Mój pracodawca ostatnio zapłacił za grupę nas programistom Zend Framework: Podstawy Oczywiście, tutaj będę podsumować moje przemyślenia i opinie na temat kursu dla innych. Dla tych, którzy chcą zaoszczędzić czas, oto moje podsumowanie:

Dla deweloperów, którzy nie mieli czasu spojrzeć na Zend Framework tego kursu (Zend Framework: Podstawy) oferuje dobry ogólny obraz poprzez wprowadzenie do kluczowych obszarów i dając wystarczająco dużo informacji, aby kontynuować. Dla tych, którzy spędzili trochę czasu patrząc na ramy i po jednym lub dwóch samouczki tego kursu nie oferuje zbyt wiele poza nim.

Tło

Byłem PHP developer około 5-6 lat, i zaczął pracować z Zend Framework w oparciu o komponent w ciągu ostatnich 6 miesięcy. I stworzyliśmy i / lub został deweloperem na kilka małych Zend Framework MVC sites. Będę szczery, nie miałem ogromną ilość ekspozycji na innych forach z punktu widzenia kodowania, ale przez kilka godziny badania stron internetowych projektu i oceny them. Ramy i otaczającej społeczności Zend Framework jest bardzo ekscytujące i nie wydaje się być ogromne możliwości w których jej dzieje.

O kursie

Kurs dostarczany jest w ciągu 9 dwie sesje WebEx godzin (z 10-minutową przerwę w środku). Czas spędzony przechodzi zestaw slajdów dostarczonych przez Zend z dyskusji w dowolnym momencie. Możesz użyć mikrofonu do rozmowy z instruktorem, ale szczerze mówiąc nie widziałem nikogo używać czegoś więcej niż w oknie czatu. Ponadto VMWare maszyny Ubuntu jest pod warunkiem, że ma przykład kodu i projektów stworzonych wersję testową Zend Studio. Rozmowy lider oczywiście uczestników albo przez rozwiązania VoIP zintegrowane, lub można wybrać w użyciu jednej z wielu wybierania na całym świecie w liczbach.

W trakcie Materiał składa się z krótkiego przeglądu ramowej i wzorzec MVC przed wyruszeniem w przykładowej aplikacji księgi. W dyskusji wykazano, uruchamianie, Zend_Application, tabele Db, dostęp do bazy danych, formularze, filtrowanie, ACL, Użytkownicy, itp., itd. Zasadniczo obejmujące wszystkie tematów, można wymagać, aby uzyskać podstawowe miejsca do pracy cały czas dając narzędzia do idź i bardziej zaawansowanych w ramach (choć nie kwotę "Patrz strona" dużo czasu).

Czas podaje się kod do niektórych przykładów, oraz do opracowania "księgi" i proste "wiki" aplikacji. Osobiście czułem, że dostarczenie kodu lub każdej aplikacji, a następnie prosi nas do rozwoju, co w zasadzie kopia obok tak naprawdę nie stanowią dobre doświadczenie. Wolałbym, by stworzyć aplikację podobne, ale nie identyczne. do zastosowania np. w korzyści płynące z posiadania przewodnika się odwoływać. Alternatywnie budowy aplikacji od podstaw z demonstrator by możliwie doprowadziły do pytania, dlaczego i jak, co daje lepsze zrozumienie ramach przecież można sprawdzić specyfiki po zakończeniu kursu.

Ostatni wykład składał się z pracy w sprawie stosowania wiki z pomocy / wskazówek od instruktora. Po informacji zwrotnej oczywiście została podjęta, podkreślano wielokrotnie przez kurs, Zend ma opinię bardzo poważnie, bowiem pozornie naszej wersji kursu był całkiem nowy. Niektóre z innymi programistami w firmie weźmie oczywiście wkrótce tak będzie interesujące zobaczyć, czy tak się stało.

Styl oczywiście było nieformalne, pozwoliły na opinie i współpracę między uczestników i instruktora. Oczywiście liderem był przyjazny, przystępny (adresy e-mail były dzielone na pytania), a podczas swojej prezentacji na slajdach był nieco chwiejny wydawało się w pełni kompetentne w ramach. Był wyraźnie kogoś, kto używane ramach regularnie, a nie kogoś, kto uczy się uczyć Oczywiście podobało mi się "prawdziwym świecie" doświadczenia w tym zakresie.

Ogólne uczucie

W pewnym sensie znalazłem oczywiście strata czasu, w innych było to bardzo wygodne. Mam nadzieję, że będę miał swoje powody na jasno, a może zapewnić pewne do myślenia lub uwagi przydatne (znając mnie to raczej mało prawdopodobne!).

Dla mnie ten kurs miał na celu zbyt niskim poziomie. Po przejściu Quick Start Guide, czytać Rob Allen Zend Framework w działaniu, i pracował z ramami trochę tak naprawdę nie dostać coś za dużo. Chciałbym z spodobał się oczywiście odebrać od końca quickstart i rozwijania dodatkowych umiejętności.

Powiedział, że tytuł kursu nie jasno "Zend Framework: Podstawy" i pod tym względem kursu osiąga to, co ma na celu zrobić. Inni członkowie zespołu projektowego, które nie spędziliśmy czas patrząc w ramach zakończeniu każdej sesji z entuzjazmem i pytania, które było naprawdę miło zobaczyć.

Nie wszystko stracone, że dobrze spędzić czas potwierdzające podstawowe informacje dotyczące ram i się zadać kilka pytań w obszarach, w których nie byłem w 100%. Był to także czas, że mam usiąść każdego dnia i myśleć o kodowania przy użyciu ramy i przyszłych projektów, coś, czego nie mogłaby w stanie zrobić inaczej (można sobie wyobrazić firmy zgadzając się, że:)). Wreszcie można również uzyskać ładny certyfikat z Zend powiedzieć, że wzięli udział w kursie (choć przez e-mail).

Zend Framework certyfikacji

To było jedno pytanie, które przychodziły do ​​głowy w trakcie, to przygotować mnie do certyfikacji? Szybkie, łatwe brzmi nie. Instruktor oczywiście całkiem jasno, że z dodatkowych informacji, że certyfikacji powinno się naprawdę za pomocą ram na co dzień podstawie i czują się bardzo komfortowo i pewnie w jego użytkowania i metodologii.

Streszczenie

Biorąc pod uwagę wszystko, co napisałem powyżej, ja podsumować wszystko w dwóch łatwych punktach:

  • Nowy Zend Framework: Ten kurs jest dokładnie to, czego można się spodziewać, że daje ładne wprowadzenie do ramy i dobre uziemienie na podstawach, z których można budować. Oczywiście wydaje się, by wzbudzić zainteresowanie i entuzjazm ramach wśród deweloperów.
  • Używane Zend Framework: Chociaż miło było wzmocnić niektóre bardzo podstawowe poczułem czasu, wysiłku i środków do podjęcia Oczywiście można z lepiej gdzie indziej. To będzie miły dla SEEA Zend utworzyć nowy wyższy poziom kursu do podjęcia deweloperów do następnego poziomu -. Co najmniej do poziomu certyfikacji i poza nią tego nie mogę zarejestrować się natychmiast.

Zaloguj się do DB przy użyciu Zend Framework

Przez , wtorek 14 kwietnia 2009 21:06

Udało mi się dostać miejsce i działa z Zend Framework , wszystko jest ładnie logowania do FireBug / FirePHP więc następnym krokiem było się zalogować do bazy. Chciałem się zalogować dodatkowych informacji przy użyciu ramy takie jak agenta użytkownika, datę i czas, GET i POST zmienne. Tak więc rozszerzenie obsługi trochę oto co zrobiłem:

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

$ ColumnMapping = array ("priorytet" => "priorytetowych",
'Message' => 'wiadomości',
'Datetime' => 'timestamp',
"User_agent '=>' user_agent"
"Get_vars '=>' get_vars"
"Post_vars '=>' post_vars"
'Site' => 'site'
);

$ 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 ('site', SITE);

$ Logger-> info ('Komunikat informacyjny');

W przypadku, gdy klucze tablicy w $ columnMapping są moje nazwy kolumn. "Priorytet" i "wiadomości" są rozumiane przez Zend_Log_Writers ale dodatkowe pola zostały dodane do dać mi kilka dodatkowych informacji.

Oczywiście zakłada się, że rejestrowanie pracy przy użyciu jednej z innych pisarzy pierwszy:)













Theme Panorama przez Themocracy

7 odwiedzających online
6 osób, 1 boty, 0 użytkowników
Max odwiedzających dziś: 16 na 01:33 UTC
W tym miesiącu: 17 w 09-01-2011 23:27 UTC
W tym roku: 130 w 28-03-2011 22:40 UTC
Cały czas: 130 w 28-03-2011 22:40 UTC