如何使用 CodeIgniter 4 同时使用多个 .env 文件?
How to use multiple .env files at the same time with CodeIgniter 4?
我将标准 .env
文件与 CodeIgniter 4 一起使用。此外,我想使用来自同一服务器上托管的 React 应用程序的一些信息。
如何将 /root/ci4/.env
与 /root/react/.env
一起使用,以便在我的应用程序中使用 getenv('REACT_APP_FOO');
?
REACT_APP_*
变量名肯定不会存在于 /root/ci4/.env
文件中。
步骤:
打开 CodeIgniter 4 应用程序 public 路径 /root/ci4/public
.
下的文件 index.php
在文件/root/ci4/public/index.php
:
中加载React应用just before the line of code $app->run();
的.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
)。
补充说明:
A.
If a .env
variable already exists in the environment, it will
NOT be overwritten. - Environment Variables and CodeIgniter
这意味着在 /root/react/.env
下定义的环境变量不会 覆盖在 /root/ci4/.env
.
下定义的类似环境变量
B.
WARNING: Note that your settings from the .env
file are added to Environment Variables. As a side effect, this means that if your
CodeIgniter application is (for example) generating a
var_dump($_ENV)
or phpinfo()
(for debugging or other valid
reasons) your secure credentials are publicly exposed. -
Environment Variables and
CodeIgniter
我将标准 .env
文件与 CodeIgniter 4 一起使用。此外,我想使用来自同一服务器上托管的 React 应用程序的一些信息。
如何将 /root/ci4/.env
与 /root/react/.env
一起使用,以便在我的应用程序中使用 getenv('REACT_APP_FOO');
?
REACT_APP_*
变量名肯定不会存在于 /root/ci4/.env
文件中。
步骤:
打开 CodeIgniter 4 应用程序 public 路径
下的文件/root/ci4/public
.index.php
在文件
中加载React应用just before the line of code/root/ci4/public/index.php
:$app->run();
的.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
)。
补充说明:
A.
If a
.env
variable already exists in the environment, it will NOT be overwritten. - Environment Variables and CodeIgniter
这意味着在 /root/react/.env
下定义的环境变量不会 覆盖在 /root/ci4/.env
.
B.
WARNING: Note that your settings from the
.env
file are added to Environment Variables. As a side effect, this means that if your CodeIgniter application is (for example) generating avar_dump($_ENV)
orphpinfo()
(for debugging or other valid reasons) your secure credentials are publicly exposed. - Environment Variables and CodeIgniter