因此我在.htaccess
SetEnv APP_ENV development
和i config's
个文件
$env = getenv('APP_ENV');
if($env == 'development'){
//do something
}else{
//someting else
}
但现在事情变得更加丑陋,因为有多种环境:
并且对于每个环境,都有不同的database settings
和其他设置
那么有没有比在任何地方更改.htaccess
文件更好的解决方案?
答案 0 :(得分:2)
我可以向你推荐我的架构:
我们不使用.htaccess
,而是在我们的虚拟主机中使用虚拟主机和定义,例如:
<VirtualHost *:80>
ServerName localhost
DocumentRoot "c:/wamp/www"
SetEnv APPLICATION_ENV "development"
<Directory c:/wamp/www>
DirectoryIndex index.php
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
从这里开始我的配置:
// application.config.php
'config_glob_paths' => array(
sprintf('config/autoload/{,*.}{global,%s,local}.php', $env),
),
其中$env
等于:
$env = getenv('APPLICATION_ENV') ?: 'development';
您的配置/自动加载/文件取决于您的环境(示例):
制作:
预生产:
<强>开发强>
<强>测试强>
orm是您的数据库配置。 (我使用学说)
在doctrine.global.php
中,当我想加载数据库配置的环境参数时,我有这个:
//doctrine.global.php
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' =>'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => include "orm.{$env}.php",
),
),
确保这些文件未使用您的git / mercurial / anythingelse(忽略的文件)进行版本化
然后你很高兴。