0

我有一个这样的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"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[database]
resources.db.adapter               = PDO_MYSQL
resources.db.params.dbname         = "ccgss"
resources.db.params.username       = "root"
resources.db.params.password       = ""
resources.db.params.hostname       = "localhost"
resources.db.isDefaultTableAdapter = true

[layout]
layoutPath = APPLICATION_PATH "/layouts"
layout = default
contentKey = "content"

默认情况下,zend 框架会加载该[production]部分。如何自动加载其他部分?

此外

如何更改 、 和 on 之间stagingtesting环境development

4

2 回答 2

1

要在生产、开发等之间切换应用程序的环境,只需在.htaccess文件中将变量设置为适当的值:

SetEnv APPLICATION_ENV development

如果您想从引导程序中自动加载自己的资源插件,只需将其附加到resources阵列上即可:

resources.myplugin.param1 = "myvalue"

不要忘记将插件的命名空间和目录路径也添加到pluginsPath值中,否则 ZF 将不知道在哪里查找:

pluginPaths.My_Resource_Namespace = "My/Namespace/Folder"

最后,如果您想在不使用插件的情况下访问配置文件中的值,您可以使用Zend_Config_Iniresources加载文件:

$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
于 2010-09-01T19:39:45.810 回答
1

Zend Framework 加载“生产”部分,因为您的环境在 index.php 中设置为“生产”

defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

因此,要将您的环境更改为生产以外的其他环境,您只需更改APPLICATION_ENV变量的值(例如,您可以在 .htaccess 中执行此操作)。

此外,您可能不需要单独的数据库和布局部分,只需将它们包含在“生产”部分中即可。如果您为它们使用单​​独的部分,则它们不会被解析,因为只有当前环境部分被解析,正如您从这一行中看到的那样

$application = new Zend_Application(
  APPLICATION_ENV,
  APPLICATION_PATH . '/configs/application.ini'
);
于 2010-09-01T19:43:50.607 回答