以下是我的项目结构,
在bootstrap文件中,我正在加载这样的模块
protected function _initAutoload() {
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace'=>'',
'basepath'=>APPLICATION_PATH
)
);
return $autoloader;
}
当我尝试访问控制器时,抛出以下错误,
致命错误:未捕获的异常'Zend_Loader_Exception',消息'资源加载器需要命名空间和初始化的基本路径'
对此有什么想法吗?
的application.ini
[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
includePaths.library = APPLICATION_PATH“/../ library”
bootstrap.path = APPLICATION_PATH“/Bootstrap.php”
bootstrap.class =“Bootstrap”
appnamespace =“申请”
resources.frontController.controllerDirectory = APPLICATION_PATH“/ controllers”
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH“/ layouts / scripts /”
resources.view.doctype =“XHTML1_STRICT”
resources.db.adapter = PDO_MYSQL;
resources.db.params.host = localhost;
resources.db.params.username = root2;
resources.db.params.password = password;
resources.db.params.dbname = zfalbums;
settings.publicFoderPathRelativeToApplicationPath =“../ public_html”;
settings.skin.name =“default”;
settings.cache.enable = false;
由于
答案 0 :(得分:0)
命名空间应该是模块的名称。由于您未显示列出的任何模块,因此您甚至可能不需要模块自动加载器。但是,尝试使用“default”作为命名空间,尽管您可能需要为此设置前缀(即类Default_IndexController扩展Zend_Controller_Action)。
答案 1 :(得分:0)
首先:如果你使用的是合理的ZF版本,这就是冗余代码。评论它,事情应该有效。
第二:你在结构中展示的唯一模块是'默认'。
看起来您可能正在使用 Rob Allens ZF 1.x教程,如果是这样,请确保您拥有current version。
要启用模块,请检查(from Rob Allen)
<强> [编辑] 强> 要修复数据库问题,请确保在application.ini中至少包含以下这些行:
;Database Settings
;*****************
resources.db.adapter = "pdo_Mysql" //your database adapter
resources.db.params.username = "your_username"
resources.db.params.password = "your_password"
resources.db.params.dbname = "your_db_name"
请记住,在您尝试连接数据库之前,该数据库需要存在(或者您可以使用脚本创建它)。 PHPmyadmin适用于轻松管理mysql。
答案 2 :(得分:0)
您收到以下错误
Fatal error: Uncaught exception 'Zend_Loader_Exception' with message 'Resource loader requires both a namespace and a base path for initialization' in
因为在您的引导程序中,您将基本路径加载为'basepath'=>APPLICATION_PATH
,这应该是'basePath' => APPLICATION_PATH