我有像这样的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]
部分。如何自动加载其他部分?
另外
如何更改staging
,testing
,development
之间以及之间的环境?
答案 0 :(得分:1)
要在生产,开发等之间切换应用程序的环境,只需将变量设置为.htaccess
文件中的适当值:
SetEnv APPLICATION_ENV development
如果您想从引导程序中自动加载自己的resource plugins,只需将其添加到resources
数组即可:
resources.myplugin.param1 = "myvalue"
不要忘记将插件的命名空间和目录路径添加到pluginsPath
值,否则ZF将不知道在哪里查看:
pluginPaths.My_Resource_Namespace = "My/Namespace/Folder"
最后,如果您想在不使用resources
插件的情况下访问配置文件中的值,可以使用Zend_Config_Ini类加载文件:
$config = new Zend_Config_Ini('/path/to/config.ini', 'staging');
答案 1 :(得分:1)
Zend Framework加载'production'部分,因为您的环境在index.php中设置为'production'
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'
);