在部署PHP应用时,一些环境变量(配置)处于安全等考虑,不能将其放到版本管理中。像Laravel是放到.env
中,后续会单独写PHP dotenv使用,这里我们先实现一个简易版本。
env.php
放到应用根目录下,.gitignore
添加env.php
排除项。
方便起见,可以新建 env.example.php
作为基础配置参考。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php
$variables = [
'APP_NAME' => 'mangoblog',
'APP_ENV' => 'test',
'APP_DEBUG' => 'error',
'APP_URL' => 'https://blog.mango.im/'
];
foreach ($variables as $key => $value) {
putenv("$key=$value");
}
|
helpers.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?php
if(file_exists('./env.php')) {
include './env.php';
}
if(!function_exists('env')) {
function env($key, $default = null)
{
$value = getenv($key);
if ($value === false) {
return $default;
}
return $value;
}
}
|
使用上次讲的使用Composer组织PHP应用项目结构
composer.json
1
2
3
4
5
6
7
8
9
10
11
|
{
"require": {
"monolog/monolog": "^1.25"
},
"autoload": {
"psr-4": {
"App\\": "app/"
},
"files":["app/helpers.php"]
}
}
|
index.php
1
|
echo env("APP_NAME").PHP_EOL;
|
访问app/index.php
就打印出env配置项了。