PHP应用简单env配置

部署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配置项了。

updatedupdated2020-05-132020-05-13
Load Comments?