Zend framework PHP/Zend:致命错误-找不到类
我有一个Zend项目,其目录结构如下:Zend framework PHP/Zend:致命错误-找不到类,zend-framework,zend-framework-modules,Zend Framework,Zend Framework Modules,我有一个Zend项目,其目录结构如下: /myApp /application Bootstrap.php /configs application.ini /layouts /modules /default /controllers MessageController.php ErrorController.php IndexController.php
/myApp
/application
Bootstrap.php
/configs
application.ini
/layouts
/modules
/default
/controllers
MessageController.php
ErrorController.php
IndexController.php
/models
/DbTable
Message.php
Message.php
MessageMapper.php
/views
Bootstrap.php
/login
/controllers
/forms
/library/login
/models
/plugins
/views
Bootstrap.php
/data/db
/library/zend
/public
-工作正常,但我无法使登录模块和默认模块内的消息正常工作。我得到以下错误:
致命错误:在第14行的/Library/WebServer/Documents/myApp/Application/modules/Default/controllers/MessageController.php中找不到类“Application\u Module\u Default\u Model\u MessageMapper”
我确信我没有初始化我需要的东西。下面是我的代码
application.ini
autoloaderNamespaces[] ="Message_"
autoloaderNamespaces[] ="Login_"
autoloadernamespaces.0 = "Zend_"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.frontController.moduleControllerDirectoryName = "controllers"
resources.frontController.defaultControllerName = "index"
resources.frontController.defaultActionName = "index"
resources.frontController.params.displayExceptions = 0
resources.frontController.defaultModule = "default"
resources.frontController.params.prefixDefaultModule = "1"
resources.frontController.plugins[] = "Login_Plugin_SecurityCheck"
resources.modules = ""
/application/bootstrap.php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initDoctype()
{
$this->bootstrap('view');
$view = $this->getResource('view');
$view->doctype('HTML5');
}
}
/public/index.php
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
require_once 'Zend/Application.php';
require_once('Zend/Loader/Autoloader.php');
$autoloader = Zend_Loader_Autoloader::getInstance();
/module/default/controllers/MessageController.php
$message = new Application_Module_Default_Model_MessageMapper();
$this->view->entries = $message->fetchAll();
让我知道如果有更多的细节会有帮助。非常感谢您的帮助。您是否尝试过:
$message = new Default_Model_MessageMapper();
另外,您是否在module Bootstrap.php文件中自动加载模块?我不确定自使用ZF以来它发生了多大变化,但我必须包括以下内容:
$loader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Default_',
'basePath' => '/path/to/modules/default'
));
我也有同样的问题,但我的原因很简单 我有一个表单表单\u模板\u添加&一个控制器模板控制器。 从控制器中,我调用了表单-新表单模板添加()强> 我的表单位于文件夹模板中 问题是文件夹名称,请参见模板中的“t”是小写字母,而控制器和类名的“t”是大写字母。
我将文件夹名称更改为模板&它起作用了。。。hooya确保在每个模块目录中创建了Bootstrap.php,如下所示:
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{}
其中Admin是模块的名称。另外,确保在目录modules/admin/forms中有一个文件Login.php,其类为admin\u Form\u Login
你的类在
MessageMapper.php
中是如何定义的?我有以下内容:class Default\u Model\u MessageMapper
它当前卡在这行代码上,这行代码是从数据库获取所有消息的函数:$entry=new Application\u Model\u Message()代码>我尝试过其他组合,如应用程序\模块\默认\模型\消息()代码>仍然没有乐趣,但是评论这些行会增加页面的负载,所以几乎没有了!我在代码中添加了这两点,但是我仍然得到一个错误:致命错误:在我代码第56行的/Library/WebServer/Documents/bollyme/Application/modules/Default/models/MessageMapper.php中找不到类'Application\u Module\u Default\u Model\Message'代码>你也需要更新它-新的默认模型消息();(从类名中去掉“应用程序模块”)修复!它正在工作。。/message和/login-为所有的帮助干杯!剥离应用程序模块当然有帮助!