【问题标题】:Fatal error: Class 'Zend_Form' not found致命错误:找不到类“Zend_Form”
【发布时间】:2011-03-17 09:47:54
【问题描述】:

我已经开始使用 Zend 框架,并且正在学习这个简单的 Zend 表单教程。该表单位于 application/forms 目录中,我已将 Zend 框架包含在路径中(通过转到计算机属性)。但是,当我访问 form.php 页面时,我收到此错误:

Fatal error: Class 'Zend_Form' not found 

我也尝试过从应用程序库文件夹中的 Zend 框架复制 Zend 文件夹,但错误仍然相同。谢谢。

【问题讨论】:

  • 什么'这个'教程?没有链接。

标签: zend-framework


【解决方案1】:

听起来您混淆了两个概念:系统路径和包含路径。

系统路径是一个操作系统概念。当您要求操作系统执行命令时,系统路径是查找可执行文件的位置列表。

相比之下,包含路径是一个 PHP 概念,它告诉 PHP 一个文件夹列表,在其中查找由 PHP include/require 语句调用的文件。

您在“计算机 > 属性”中找到的任何路径几乎可以肯定是操作系统级别的系统路径。您需要做的是确保 PHP 包含路径上的 Zend 文件夹,方法是移动 Zend 文件夹或修改 PHP 的包含路径以包含指向 Zend 文件夹的点。

在典型的 ZF 应用程序中,包含文件夹设置在 index.php(前端控制器)中。所以,没有找到 Zend_Form 的唯一解释是自动加载器没有被实例化。

如果您使用Zend_Application,这会自动发生。但是,您似乎正在绕过public/index.php 和整个Zend_Application 实例化,尝试直接“访问”一个名为form.php 的文件。如果这个文件只包含你的表单的定义(扩展Zend_Form),那么没有自动加载很容易解释你得到的错误信息。

我会尝试在控制器操作中实例化表单,在请求处理周期中,自动加载可能已经到位。

[此时,鉴于您引用的文件位置,我们可能会遇到资源加载器问题,但这是一个稍微不同的问题,可以通过在您的 Bootstrap 中实例化 Zend_Application_Module_Autoloader 来解决。]

【讨论】:

    【解决方案2】:

    您似乎没有使用Zend_Loader。你应该专注于它。

    您也可以手动在您的自定义表单类中包含Zend_Form 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 2011-09-08
      • 2011-12-17
      • 2018-12-21
      • 2012-11-21
      • 2015-03-20
      • 2015-03-28
      相关资源
      最近更新 更多