-- Joachim Knust <[EMAIL PROTECTED]> wrote (on Wednesday, 19 March 2008, 10:00 AM +0100): > Hello! > > > -----Original Message----- > > From: James Dempster [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, March 18, 2008 11:18 PM > > To: Simeon Goranov > > Cc: [email protected] > > Subject: Re: [fw-general] autoloading models > > > $frontController = Zend_Controller_Front::getInstance(); > > $frontController->addModuleDirectory(ROOT_DIR.'/modules/'); > > As I understand the code in Controller/Front.php addModuleDirectory() > only makes the front controller aware of the module's controller > directory and has nothing to do with model class autoloading.
Correct. > > On Tue, Mar 18, 2008 at 11:55 PM, Simeon Goranov > > <[EMAIL PROTECTED]> wrote: > > > application > > models > > controllers > > views > > modules > > gallery > > models > > controllers > > views > > news > > models > > controllers > > views > > public > > index.php > > > > > > The questions is - which is the easier way to setup models > > autoloading > > from all of the modules and application too. > > The solutions posted on the list do not solve the problem in my oppinion. > > My thoughts and experiences: > You could load the application models by adding the directory to your > include_path. If you have e.g. a class User defined in > application/models/User.php, a "new User()" will work (autoload) without > problems. But it gets tricky if you try to do this with your module's models. > Let's say you use a naming scheme for your module modles which adopts the one > for module controllers: > The index controller class for the gallery module would be > Gallery_IndexController (in file > modules/gallery/controllers/IndexController.php), so a model class could be > Gallery_Image (in file modules/gallery/models/Image.php). But if you try "new > Gallery_Image()" this will fail because Zend_Load tries to load > gallery/image.php and searches the include_path for this. > For this structure to work you need your own class loader wich can resolve > your modules' modle directory structure and falls back to Zend_Load if you > want to load any none model class. > Next problem which will accur on cascading operations (update, delete) is > that Zend_Db_Table_Abstract uses Zend_Load::loadClass to load dependent > table's modle classes, which fails because Zend_Load doesn't know about > module model directories. Same problem prevents the use of > findManyToManyRowset() magic methods. > > Maybe I miss something here and somebody has any smart solutions which might > be shared. > > > Regards > -joachim knust > > -- Matthew Weier O'Phinney PHP Developer | [EMAIL PROTECTED] Zend - The PHP Company | http://www.zend.com/
