php 通过Laravel更新.env值

m4pnthwp  于 2023-03-21  发布在  PHP
关注(0)|答案(4)|浏览(204)

例如,如果我的**.env**是

APP_ENV=local
APP_URL=http://localhost:8888/
APP_DEBUG=true
FACEBOOK_APP_ID = ABC

我知道在Laravel中我们可以通过这样做来访问我们的.env文件

echo env('APP_ENV'); --> 'local'
echo env('APP_URL'); --> 'http://localhost:8888/'

但我想知道是否有一种方法可以编程设置它

Ex. env('APP_ENV') == 'production';
liwlm1x9

liwlm1x91#

这可能会有帮助。

function setEnv($name, $value)
{
    $path = base_path('.env');
    if (file_exists($path)) {
        file_put_contents($path, str_replace(
            $name . '=' . env($name), $name . '=' . $value, file_get_contents($path)
        ));
    }
}
setEnv('APP_ENV','abc');
xpszyzbs

xpszyzbs2#

试试这个

$path = base_path('.env');

if (file_exists($path)) {
file_put_contents($path, str_replace(
    'APP_KEY='.$this->laravel['config']['app.key'], 'APP_KEY='.$key, file_get_contents($path)
));
}

来自stack answer

ibrsph3r

ibrsph3r3#

您可以用途:

putenv("APP_ENV=production");

因为env只是getenv的一个方便的 Package 器,它可以进行一些类型转换。
注意:这不是永久性的,因为当下一个请求发生时,它将被.env覆盖。

ubof19bj

ubof19bj4#

您可以使用syamsoul/laravel-set-env包轻松地更新或插入.env文件中的变量。

1.通过编写器安装

composer require syamsoul/laravel-set-env


1.只要运行命令

php artisan souldoit:set-env
  • 系统将提示您输入变量名和值。
  • 或者,直接将变量名和值放入参数中。


例如:

php artisan souldoit:set-env "APP_NAME=My New Laravel Name"

P/S:在Laravel 10及以上版本上测试过,运行良好。

相关问题