oli*_*ive 2 php zend-framework controller modular
嘿,我似乎正在攀登一个非常可怕的学习曲线.我需要花费数小时才能达到构建/编写代码的程度.我原本希望能够在其各自的模块中存储表单或模型,例如:./ application/modules/ModuleName /forms/ClassName.php但是当我尝试使用以下内容实例化一个类:$ form = new ModuleName_Form_ClassName( ); 它失败了.因此,我认为我会通过将其移动到默认模块来简化所有内容.但它仍然无法正常工作.我还在做错事.我不知道是什么.
在我的控制器动作中我有这个:
// some other code
$form = new Form_Login();
Run Code Online (Sandbox Code Playgroud)
在加载操作时,我收到以下错误消息:
Fatal error: Class 'Form_Login' not found in /some folder/www/application/modules/default/controllers/AdministrationController.php on line 22
Run Code Online (Sandbox Code Playgroud)
我的application.ini包含:
appnamespace = "SomeModule"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =
Run Code Online (Sandbox Code Playgroud)
表单存储在./application/modules/default/forms/Login.php中
1.我该如何解决这个问题?我得到的错误消息是无用的.
2.如果有某种方法可以调试__autoload()函数,我认为我的所有问题都可能得到解决.不是吗?
3.没有办法在默认模块中使用另一个模块的模型/表格吗?这就是我想要做的.我认为它会使一切更有条理.如果这是不可能的,我根本看不出这将如何有用......
干杯,
一个生病的新手Zend开发者.
听起来你第一次差点儿就有了.假设您的模块是用户和您的表单登录.为了application/module/users/forms/Login.php
工作:
Users_Form_Login
resources.modules[] =
在application.ini中初始化模块资源(您拥有).
class Users_Bootstrap extends Zend_Application_Module_Bootstrap
{
}
Run Code Online (Sandbox Code Playgroud)
定义于application/module/users/Bootstrap.php
.路径区分大小写.
我同意自动加载器可能很难调试,不幸的是它是其中之一,无论是有效还是无效,但是一旦你进行了设置,你就可以忘掉它.希望以上内容能够回答您的第三个问题 - 是的,您可以使用默认模块中另一个模块的表单.