Zend_Tool i przystosowanie aplikacji do korzystania z moduły
Po pierwszej nie udanej próbie poznania Zend Tool, w końcu znalazłem chwilę żeby spróbować jeszcze raz. Wcześniej instalowałem ZT zanim jeszcze zostało oficjalnie wydane, jednak na próbie instalacji się zakończyło.
Żeby przystąpić do pracy musimy najpierw oczywiście ściągnąć sobie najnowszą wersję Zend Framework i zainstalować framework i potrzebne skrypty czyli zf.sh i zf.php. Więcej o instalacji znajdziecie na mati.pl
Sprawdzamy czy zainstalowaliśmy poprawnie.
zf show version // Zend Framework Version: 1.9.2
Działa, więc generujemy sobie nowy projekt i przechodzimy do jego katalogu.
zf create project nazwaprojektu cd nazwaprojektu
Wygenerowała się nam mniej więcej taka struktura:
| application | configs | controllers | models | views | library | public | tests
Najbardziej interesuje nas katalog application i to żeby nasza aplikacja opierała się w całości na modułach, co ułatwi nam bardzo pracę.
Tworzymy sobie moduł domyślny
zf create module default
Otrzymujemy taką strukturę, no i zrobił się nam mały bałagan:
| application
| configs
| controllers
| models
| modules
|default
| configs
| controllers
| models
| views
| views
Katalogi application/controllers, application/models, application/views nie są nam niepotrzebne, ale ich zawartość będziemy mogli wykorzystać.
Przenosimy pliki
application/controllers/IndexController.php
application/controllers/ErrorController.php
do
application/modules/default/controllers/IndexController.php
application/modules/default/controllers/ErrorController.php
… tak samo robimy ze skryptami widoku. Następnie usuwamy zbędne katalogi. Teraz nasza struktura aplikacji wygląda o wiele lepiej.
Oczywiście po drodze musimy dodać katalog, w którym będziemy trzymać layouty, oraz odpowiednie dyrektywy w pliku konfiguracyjnym.
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts" ... resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" resources.modules[] = ""
Poprawiona struktura
| application
| configs
| layouts
| modules
|default
| configs
| controllers
| models
| views
Teraz moduł default przejmuje wszystkie funkcje domyślne w aplikacji czyli po odpaleniu aplikacji zostanie odpalona akcja index w kontrolerze Index w module default, a nie jak jest to domyślnie w ZF. Z tak przygotowaną aplikacją mamy świetną pozycję wyjściową do tworzenia pozostałych modułów i dalszego rozwijania aplikacji.
ZT nie ma zbyt wielkich możliwości, ale już dużym ułatwieniem jest generowanie samej bazowej aplikacji i generowanie struktur nowych modułów. Raczej mało przydatne wydają się takie opcje jak “create view” czy “create controller”, można to zrobić szybciej z IDE z którego korzystamy. Zaś polecenie “create module” powinno generować kompletny moduł czyli strukturę katalogów wraz z domyślnymi plikami kontrolera i widoku (nie są one zawsze potrzebne, ale w większości modułów). Niestety ZT domyślnie nie jest skonfigurowane do generowania aplikacji modułowej (a powinno). Wydaje mi się że generowana aplikacja powinna być bardziej kompletna, czyli powinna zawierać implementację logowania, cachowania czy obsługi bazy danych.
Nie jestem zachwycony ZT, mimo wszystko takie narzędzie jest potrzebne i mam nadzieję, że będzie się dalej rozwijało.
Dodatkowa lektura:
QuickStart
Dokumentacja Zend Tool
Powiązane wpisy: