Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework] jak odwołać się do modelu w module ?
pgrzelka
post 23.06.2009, 22:51:39
Post #1





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Witam
mam następującą strukturę folderów w projekcie ...


jest tam główny folder controllers, w którym mam indexcontroller, errorcontroller i inne podstawowe kontrolery
jest też folder modules w którym chciałbym mieć inne kontrolery, taki układ mi działa dość dobrze, jednak mam problem z odwołaniem się do formularza w module 'user', ogólnie do modelu też nie potrafię się odwołać smile.gif

jak mam nazwać klasę modelu w module aby zend loader mi to poprawnie odczytywał ?

jak widać próbowałem User_Forms_New, ale niestety dostaje komunikat że podana klasa nie została znaleziona, wiem też że require_once '../application/modules/user/forms/new.php'; pomoże ale wolałbym aby pliki ładował zend loader.


--------------------
Go to the top of the page
+Quote Post
seth-kk
post 24.06.2009, 00:13:26
Post #2





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


dodaj modules do include_path i klasy nazywaj jakby lezaly w libie


--------------------
Go to the top of the page
+Quote Post
pgrzelka
post 24.06.2009, 01:01:48
Post #3





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Cytat(seth-kk @ 24.06.2009, 01:13:26 ) *
dodaj modules do include_path i klasy nazywaj jakby lezaly w libie
nie wiem czemu ale takie rozwiązanie mi nie chce działać, a powinno smile.gif

trochę pokombinowałem i w bootstrapie dodałem 2 linijki
  1. <?php
  2. protected function _initAutoload()
  3.    {
  4.        $autoloader = new Zend_Application_Module_Autoloader(
  5.            array(
  6.                'namespace' => '',
  7.                'basePath'  => dirname(__FILE__),
  8.            )
  9.        );        
  10.        
  11.       /*  
  12.               te dwie linijki dodałem
  13.         */
  14.       $autoloader->addResourceType('modele', '../application/modules/user/models', 'usermodel_');
  15.       $autoloader->addResourceType('formularze', '../application/modules/user/forms', 'userform_');
  16.        
  17.        return $autoloader;
  18.    }
  19. ?>



teraz mam 2 klasy, formularz i model
application/modules/user/models/Test.php
  1. <?php
  2. class UserModel_Test{
  3.    function ttt()
  4.    {
  5.        return 'lorem ipsum';
  6.    }    
  7. }
  8. ?>


application/modules/user/forms/New.php
  1. <?php
  2. class UserForm_New extends Zend_Form {
  3.      
  4. }
  5. ?>


i bez problemu mogę się do nich odwołać w application/modules/controllers/NewController.php za pomocą kodu
  1. <?php
  2. class User_NewController extends Zend_Controller_Action
  3. {
  4.    public function indexAction()
  5.    {
  6.        $t = new Usermodel_Test();
  7.        $form = new Userform_New();        
  8.    }
  9. }
  10. ?>



jednak takie rozwiązanie mnie nie satysfakcjonuje ponieważ przy tworzeniu każdego modułu muszę dodawać nowe linijki do boostrapa.

może znajdzie się ktoś kto zna lepsze rozwiązanie ?


--------------------
Go to the top of the page
+Quote Post
thm
post 16.07.2009, 18:34:27
Post #4





Grupa: Zarejestrowani
Postów: 52
Pomógł: 10
Dołączył: 6.10.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


ponieważ dzisiaj miałem ten problem i spaliłem niepotrzebnie dużo papierochów przy tym, podsyłam linka do rozwiązania proponowanego przez guru zf. może ktoś skorzysta.

http://akrabat.com/2009/07/08/bootstrappin...ules-in-zf-1-8/
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: 24.06.2025 - 02:59