0

以下是我的项目结构,

在此处输入图像描述

在引导文件中,正在加载这样的模块

protected function _initAutoload() {

        $autoloader = new Zend_Application_Module_Autoloader(array(
         'namespace'=>'',
         'basepath'=>APPLICATION_PATH
        )
        );
        return $autoloader;
    }

当我尝试访问控制器时,会引发以下错误,

致命错误:未捕获的异常“Zend_Loader_Exception”与消息“资源加载器需要命名空间和基本路径进行初始化”

对此有任何想法吗?

应用程序.ini

[production]

phpSettings.display_startup_errors = 1

phpSettings.display_errors = 1

includePaths.library = APPLICATION_PATH "/../library"

bootstrap.path = APPLICATION_PATH "/Bootstrap.php"

bootstrap.class = "引导程序"

appnamespace = "应用程序"

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

资源.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 = 本地主机;

资源.db.params.username = root2;

resources.db.params.password = 密码;

资源.db.params.dbname = zfalbums;

settings.publicFoderPathRelativeToApplicationPath = "../public_html";

settings.skin.name = "默认";

settings.cache.enable = false;

谢谢

4

3 回答 3

0

第一:如果您使用的是当前版本的 ZF,这是多余的代码。把它注释掉,事情应该会奏效。

第二:您在结构中显示的唯一模块是“默认”。

看起来您可能正在使用Rob Allens ZF 1.x 教程,如果是这样,请确保您拥有当前版本

要启用模块,请查看(来自 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。

于 2012-06-21T14:21:52.077 回答
0

命名空间应该是模块的名称。由于您没有列出任何模块,您甚至可能不需要模块自动加载器。但是,尝试将“default”作为命名空间,尽管您可能需要在所有内容前加上这个(即 Default_IndexController 类扩展 Zend_Controller_Action)。

于 2012-06-21T14:21:08.430 回答
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

于 2013-01-13T08:39:53.053 回答