Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] set_include_path - modele w różnych modułach
Apocalyptiq
post 24.04.2009, 18:16:38
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


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
batman
post 24.04.2009, 18:34:33
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).


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Apocalyptiq
post 24.04.2009, 18:47:01
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 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


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 03:10