我已将Laravel应用程序部署到共享主机,并遇到了env变量的问题。提供者只允许使用' PHP _'前缀由于安全原因。是否有可能或者是否可以添加到Laravel来设置这些变量的前缀?现在我更改了Illuminate \ Foundation \ helpers.php文件的方法env()并添加了:
$value = getenv($key);
if ($value === false) {
$value = getenv("PHP_" . $key);
if ($value === false)
return value($default);
}
它有效,但在作曲家更新后会被覆盖。我不确定这是否是其他托管服务提供商的常用方法,所以如果将其他人添加到Laravel是有用的。
答案 0 :(得分:3)
您可以创建自己的helpers.php文件并覆盖那里的getenv()函数。只要您首先加载助手文件,Laravel就永远不会自己注册,因为所有帮助程序都包含if ( ! function_exists('function_name'))
。
有关Laravel的helpers.php文件中覆盖函数的一些详细信息,请参阅此主题。
https://laracasts.com/discuss/channels/general-discussion/override-functions-in-supporthelpersphp