com*_*enk 5 laravel laravel-5 phpdotenv
我的 laravel 5 应用程序中有几个子域,每个子域都有特定的配置,如 mail、nocaptcha 等。
如何设置 .env 文件以与我的特定子域一起使用?
是的,您可以.env为每个子域使用单独的文件,因此如果您在配置中使用环境变量,它将无需进行很大的修改即可工作。
创建bootstrap/env.php包含以下内容的文件:
<?php
$app->detectEnvironment(function () use ($app) {
if (!isset($_SERVER['HTTP_HOST'])) {
Dotenv::load($app['path.base'], $app->environmentFile());
}
$pos = mb_strpos($_SERVER['HTTP_HOST'], '.');
$prefix = '';
if ($pos) {
$prefix = mb_substr($_SERVER['HTTP_HOST'], 0, $pos);
}
$file = '.' . $prefix . '.env';
if (!file_exists($app['path.base'] . '/' . $file)) {
$file = '.env';
}
Dotenv::load($app['path.base'], $file);
});
Run Code Online (Sandbox Code Playgroud)
现在修改bootstrap/app.php以加载您的自定义env.php文件。只需添加:
require('env.php');
Run Code Online (Sandbox Code Playgroud)
后
$app = new Illuminate\Foundation\Application(
realpath(__DIR__.'/../')
);
Run Code Online (Sandbox Code Playgroud)
现在,您可以为每个域创建单独的环境文件,例如,如果您使用testing.app,abc.testing.app并且def.testing.app您可以拥有.env主域的文件(以及所有没有自定义环境文件的子域)和.abc.env子.def.env域的自定义环境变量的文件。
| 归档时间: |
|
| 查看次数: |
5268 次 |
| 最近记录: |