Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] Podział na moduły
Forum PHP.pl > Forum > PHP > Frameworki
Siner
Aplikację podzieliłem w taki sposób.

Dla modułu defaults wszystko działa ok, natomiast gdy wywołuje moduł admin dostaję błąd.
"Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (index)' in Standard.php:241 Stack trace:
#0 Zend/Controller/Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#1 /public/index.php(43): Zend_Controller_Front->dispatch()
#2 {main} thrown in Zend/Controller/Dispatcher/Standard.php on line 241"


bootstrap.php
  1. <?php
  2. $frontController = Zend_Controller_Front::getInstance();
  3. $frontController->throwExceptions(true);
  4. $frontController->setModuleControllerDirectoryName('controllers');
  5. $frontController->addModuleDirectory(APPLICATION_PATH . '/modules');
  6. ...
  7. $config = new Zend_Config_Ini(APPLICATION_PATH . '/config/routes.ini');
  8. $router = $frontController->getRouter();
  9. $router->addConfig($config, 'routes');
  10. $frontController->setRouter($router);
  11. ?>

/config/routes.ini
Kod
[routes]  
default.route                 = ":controller/:action/*"
default.defaults.module        = "default"
default.defaults.controller  = "index"
default.defaults.action         = "index"

admin.route            = "admin/:controller/:action/*"
admin.defaults.module     = "admin"
admin.defaults.controller  = "index"
admin.defaults.action      = "index"

Jeszcze mam pytanie, jak zrobić jeden katalog z modelami dla wszystkich modułów?
batman
Usuń z nazwy kontrolera admin_ i dodaj przed nazwę klasy, np admin_IndexController. Powinno zadziałać. Ścieżki też możesz sobie darować. A dlaczego chcesz zrobić jeden katalog na modele?
Siner
Racja, najgłupsze problemy są najtrudniejsze winksmiley.jpg
A modele chcę w jednym katalogu trzymać bo po co tworzyć dwa razy to samo. Jak np będę chciał pobrać listę użytkowników co jest możliwe np na stronie głownej jak i w panelu administracyjnym.

edit: poprawki składniowe winksmiley.jpg
batman
Możesz to rozwiązać na dwa sposoby.
1. Obok katalogu Zend (w library), tworzysz swój katalog, np My lub App lub cokolwiek innego, a w nim katalog Module. W tym folderze przechowujesz modele "globalne".
2. Tworzysz klasę modelu tylko w admin i w innych modułach odwołujesz się do niej.


edit
Polecam rozwiązanie 2, ponieważ nie będziesz miał bałaganu w plikach.
pejotr
ja korzystam z takiego rozwiązania, ani nie pisze 2 razy anie nie mam 1 katalogu na 2 moduły
http://phpimpact.wordpress.com/2008/08/12/...zend-framework/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.