如何在CodeIgniter 4中同时使用多个.env文件?

km0tfn4u  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(196)

我将标准.env文件与CodeIgniter 4一起使用。此外,我还希望使用来自同一服务器上承载的React应用程序的一些信息。
如何将/root/ci4/.env/root/react/.env一起使用,以便在应用程序中使用getenv('REACT_APP_FOO');
REACT_APP_*变量名肯定不会存在于/root/ci4/.env文件中。

kq4fsx7k

kq4fsx7k1#

步骤:

1.在CodeIgniter 4应用程序的公共路径/root/ci4/public下打开文件index.php
1.在文件/root/ci4/public/index.php中的代码行$app->run();之前加载React应用程序的.env文件:

// ...

// Load environment settings from .env file into $_SERVER and $_ENV
$envPath = ROOTPATH . ".." . DIRECTORY_SEPARATOR . "react";
$envFileName = ".env";

if (is_file($file = $envPath . DIRECTORY_SEPARATOR . $envFileName) && is_readable($file)) (new \CodeIgniter\Config\DotEnv($envPath, $envFileName))->load();

// ...

其中:

  • $envPath-表示 “React应用程序”.env文件的 * 目录路径 *。假定它位于/root/react/.env
  • $envFileName-表示 “React应用程序的”.env文件名。
  • \CodeIgniter\Config\DotEnv(...)->load()-这个方法负责加载.env文件并处理它,这样我们就得到了PHP环境变量中的所有设置(即getenv()$_ENV$_SERVER)。
额外注解:

答。
如果.env变量已经存在于环境中,它将被覆盖。-环境变量和CodeIgniter
这意味着在/root/react/.env下定义的环境变量不会覆盖在/root/ci4/.env下定义的类似环境变量。
B.最后

  • 警告:* 请注意,.env文件中得设置将添加到环境变量中.作为一个副作用,这意味着如果CodeIgniter应用程序(例如)正在生成var_dump($_ENV)phpinfo()(出于调试或其他正当原因),则您得安全凭据将公开. -环境变量与CodeIgniter

相关问题