在 Zend 2 中有
- 全局配置文件 &
- 模块级配置文件
如果你想知道那里的使用,你可以参考下面的链接
ZF2 中的配置是如何工作的
当我遇到相同的情况时,我使用上面的链接来理解和利用 Zend Config 模块,它非常适合处理这种情况。
创建两个文件
生产.php local.php
在这两个文件中
根据环境返回这个数组
return array(
"dbname" => "yourdbname"
"dbhostname" => "dbhostname"
"dbusername" => "yourdbusername",
"dbpassword" => "yourdbpassword"
);
在您的 zend 框架应用程序的 config/autoload/ 目录中
稍后按照以下说明编辑您的 config/application.config.php 文件
// 从 Apache vhost 文件中获取应用程序环境(在这里你可以在你的 apache vhost 文件中设置为生产或本地)
$applicationEnv = getenv('APPLICATION_ENV');
$environmentSpecificConfigPath = "config/autoload/{,*.}{".$applicationEnv.",local}.php";
// 接下来在配置数组中传递环境特定的配置路径
'config_glob_paths' => array($environmentSpecificConfigPath)
在任何控制器或动作中
你可以使用下面的代码
$configArray = $this->getGlobalConfig();
现在 $configarray 拥有您所有的数据库凭据来创建连接
$adapter = new Zend\Db\Adapter\Adapter(array(
'driver' => 'Mysqli',
'database' => $configArray['dbname'],
'username' => $configArray['dbusername'],
'password' => $configArray['dbpassword']
));
如果您在整个应用程序中使用配置数组连接数据库,则无需担心环境更改只需确保您的 vhost 文件中有 Apache APPLICATION_ENV 条目
您可以通过在 apache vhost 文件中添加以下行来做到这一点
SetEnv APPLICATION_ENV "production" // in your production server
SetEnv APPLICATION_ENV "local" // in your local
最后但同样重要的是,您可以使用 Zend Experts 模块 ZeDB
https://github.com/ZendExperts/ZeDb
管理您的 CRUD 应用程序
希望以上步骤可以帮助您创建环境