Zend似乎不想加载我创建的表单

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开发者.

Tim*_*ain 5

听起来你第一次差点儿就有了.假设您的模块是用户和您的表单登录.为了application/module/users/forms/Login.php工作:

  • 需要调用该文件中定义的表单类 Users_Form_Login
  • 您需要resources.modules[] = 在application.ini中初始化模块资源(您拥有)
  • 您需要该模块的模块引导程序(这是设置模块自动加载器的原因).所以最低限度你需要一个像这样的bootstrap类:

.

class Users_Bootstrap extends Zend_Application_Module_Bootstrap
{

}
Run Code Online (Sandbox Code Playgroud)

定义于application/module/users/Bootstrap.php.路径区分大小写.

我同意自动加载器可能很难调试,不幸的是它是其中之一,无论是有效还是无效,但是一旦你进行了设置,你就可以忘掉它.希望以上内容能够回答您的第三个问题 - 是的,您可以使用默认模块中另一个模块的表单.