Nik*_*hev 49 php apache configuration zend-framework
我喜欢它在Zend Framework中的工作原理.我可以通过检查控制器中的APPLICATION_ENV常数来了解我当前使用的环境.
<VirtualHost *:80>
#ServerName
#DocumentRoot
SetEnv APPLICATION_ENV "development"
# Directory
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
但不幸的是,我不能在我当前的项目中使用ZF.如何在PHP代码中检查此环境变量?
Gor*_*don 47
由于SetEnv设置了Apache环境的值,因此您可以使用它
apache_getenv - 获取Apache subprocess_env变量要不就
getenv - 获取环境变量的值如果你看一下public/index.phpZF项目,你会看到ZF使用getenv:
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ?
getenv('APPLICATION_ENV') :
'production'));
Run Code Online (Sandbox Code Playgroud)
一个经常使用的替代方法是从PHP读取Hostname并相应地定义常量:
if(!defined('APPLICATION_ENV')) {
if(FALSE === stripos($_SERVER['SERVER_NAME'], 'www.yourdomain.com')) {
define(APPLICATION_ENV, 'development');
} else {
define(APPLICATION_ENV, 'production');
}
}
Run Code Online (Sandbox Code Playgroud)
这样,您根本不必依赖环境设置.
Pas*_*TIN 11
SetEnv 定义一个环境变量.
设置完成后(在Apache的配置中或在系统级别),您可以使用以下getenv函数读取其值:
echo getenv('APPLICATION_ENV');
Run Code Online (Sandbox Code Playgroud)
例如,如果您在.htaccess文件中使用它:
SetEnv TEST glop
Run Code Online (Sandbox Code Playgroud)
您可以使用这部分PHP代码:
var_dump(getenv('TEST'));
Run Code Online (Sandbox Code Playgroud)
你会得到:
string 'glop' (length=4)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72596 次 |
| 最近记录: |