Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] set_include_path - modele w różnych modułach
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Tak ustawiam w swoim Bootstrap'ie ścieżke inkludowania:
  1. <?php
  2.            get_include_path() . PATH_SEPARATOR .
  3.            APPLICATION_PATH . '/../library/' . PATH_SEPARATOR .
  4.            APPLICATION_PATH . '/models'
  5.        );
  6. ?>

Jak tylko wprowadziłem moduły, pojawił się problem - każdy moduł ma swój folder z modelami (application/modules/nazwa_modułu/models/).
Jak w takim przypadku mogę ustawić ten include_path?
Podobnie się ma sprawa z kontrollerami i widokami.

Ten post edytował Apocalyptiq 24.04.2009, 18:18:56
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Możesz dodać tyle ścieżek ile masz modułów. Jednak jest to bardzo złe rozwiązanie. Bardzo szybko padnie Ci wydajność.
A po co Ci te ścieżki w include_path? Jeśli tylko po to, by automatycznie ładować klasy, to szkoda wydajności. Wymagane klasy możesz dołączać poprzez require_once.
Jeśli chcesz, by Twoje moduły były widoczne, wystarczy, że użyjesz funkcji addModuleDirectory, wywołaną na obiekcie front controllera (najlepiej w pliku bootstrap).
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Z tego co widzę, kontrollery do poszczególnych modułów Zend sam znajduje, co do widoków mam obiekt $request w pluginie ViewSetup który integruje mi PHPTAL'a (system szablonów) z Zendem, a w nim zmienną module - nazwę aktualnego modułu, więc tam z ustawieniem ścieżek do templaków nie ma problemu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
  1. <?php
  2. class My_Controller_Plugin_ViewSetup extends Zend_Controller_Plugin_Abstract
  3. {
  4. public function dispatchLoopStartup (Zend_Controller_Request_Abstract $request){
  5. ....
  6.        $view->addScriptPath(APPLICATION_PATH . '/modules/' . $request->module . '/views/templates')
  7.             ->doctype('XHTML1_STRICT');
  8.  
  9.        $viewRenderer->setView($view)
  10.                     ->setViewSuffix('xhtml')
  11.                     ->init();
  12.  
  13.        // setup Zend_Layout
  14.        Zend_Layout::startMvc(array(
  15.            'layoutPath' => APPLICATION_PATH . '/modules/' . $request->module . '/views/layouts',
  16.             'layout' => 'main' ,
  17.             'viewSuffix' => 'xhtml'
  18.        ));
  19. ....
  20. }
  21. }
  22. ?>

Co do modułów chyba własnie najlepiej ręcznie requirować je, dzięki za pomoc ;-)

Ten post edytował Apocalyptiq 24.04.2009, 18:51:14
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 17:24