我将标准.env文件与CodeIgniter 4一起使用。此外,我还希望使用来自同一服务器上承载的React应用程序的一些信息。如何将/root/ci4/.env与/root/react/.env一起使用,以便在应用程序中使用getenv('REACT_APP_FOO');?REACT_APP_*变量名肯定不会存在于/root/ci4/.env文件中。
.env
/root/ci4/.env
/root/react/.env
getenv('REACT_APP_FOO');
REACT_APP_*
kq4fsx7k1#
1.在CodeIgniter 4应用程序的公共路径/root/ci4/public下打开文件index.php。1.在文件/root/ci4/public/index.php中的代码行$app->run();之前加载React应用程序的.env文件:
/root/ci4/public
index.php
/root/ci4/public/index.php
$app->run();
// ... // 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
$envFileName
\CodeIgniter\Config\DotEnv(...)->load()
getenv()
$_ENV
$_SERVER
答。如果.env变量已经存在于环境中,它将不被覆盖。-环境变量和CodeIgniter这意味着在/root/react/.env下定义的环境变量不会覆盖在/root/ci4/.env下定义的类似环境变量。B.最后
var_dump($_ENV)
phpinfo()
1条答案
按热度按时间kq4fsx7k1#
步骤:
1.在CodeIgniter 4应用程序的公共路径
/root/ci4/public
下打开文件index.php
。1.在文件
/root/ci4/public/index.php
中的代码行$app->run();
之前加载React应用程序的.env
文件:其中:
$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