Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework] jak odwołać się do modelu w module ?
Forum PHP.pl > Forum > PHP > Frameworki
pgrzelka
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.
seth-kk
dodaj modules do include_path i klasy nazywaj jakby lezaly w libie
pgrzelka
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 ?
thm
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/
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.