Hey, I seem to be climbing a pretty horrible learning curve. It's taking me hours to even get to the point where I can structure/write code. I originally wanted to be able to store a form or a model inside its respective module, for example: ./application/module/ModuleName/forms/ClassName.php but when I tried to instantiate a class with: $form = new ModuleName_Form_ClassName(); it failed. Therefore, I thought I would simplify everything by moving it to the default module. However it still isn't working. I'm still doing something wrong. I've no idea what.
Inside my controller action I have this:
// some other code
$form = new Form_Login();
On loading the action, I get this error message:
Fatal error: Class 'Form_Login' not found in /some folder/www/application/modules/default/controllers/AdministrationController.php on line 22
My application.ini contains:
appnamespace = "SomeModule"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =
The form is stored inside ./application/modules/default/forms/Login.php
1. How can I troubleshoot this? The error message I am getting is next to useless.
2. I really think all of my problems might be solved if there was some way of debugging the __autoload() function. Is there not?
3. Can there not be a way of using models/forms from another Module inside the default module? That is what I wanted to do. I thought it would make everything more structured. If this isn't possible I just can't see how this would be useful at all...
Cheers,
An ailing newbie Zend developer.
Sounds like you almost had it the first time. Let's say your module is Users and your form Login. In order for application/module/users/forms/Login.php
to work:
Users_Form_Login
resources.modules[] =
in your application.ini to initialise the module resource (which you have).
class Users_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
defined at application/module/users/Bootstrap.php
. The paths are case sensitive.
I agree that the autoloader can be quite difficult to debug, unfortunately it's one of those things that either works or it doesn't, but once you have it setup you can forget about it. Hopefully the above will answer your third question - yes you can use forms from another module inside the default one.