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

时间:2010-10-19 19:44:00

标签: php zend-framework controller modular

嘿     我似乎正在攀登一个非常可怕的学习曲线。我需要花费数小时才能达到构建/编写代码的程度。我原本希望能够在其各自的模块中存储表单或模型,例如:./ application / modules / ModuleName /forms / ClassName.php但是当我尝试使用以下函数实例化一个类:$ form = new ModuleName_Form_ClassName( );它失败了。因此,我认为我会通过将其移动到默认模块来简化所有内容。但它仍然无法正常工作。我还在做错事。我不知道是什么。

在我的控制器操作中,我有这个:

// some other code
$form = new Form_Login();

在加载操作时,我收到以下错误消息:

Fatal error: Class 'Form_Login' not found in /some folder/www/application/modules/default/controllers/AdministrationController.php on line 22

我的application.ini包含:

appnamespace = "SomeModule"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = 

表单存储在./application/modules/default/forms/Login.php

1。我该如何解决这个问题?我得到的错误消息是无用的。

2。我真的认为如果有一些方法可以调试__autoload()函数,我的所有问题都可能得到解决。没有吗?

第3。难道没有办法在默认模块中使用另一个模块中的模型/表单吗?这就是我想要做的。我认为它会使一切更有条理。如果这是不可能的,我根本无法看到它如何有用......

干杯,

一个生病的新手Zend开发者。

1 个答案:

答案 0 :(得分:5)

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

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

class Users_Bootstrap extends Zend_Application_Module_Bootstrap
{

}

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

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