mirazmac/dotenvwriter

一个用于将值写入 .env (DotEnv) 文件的 PHP 库

0.4 2023-12-09 06:55 UTC

This package is auto-updated.

Last update: 2024-09-09 08:31:25 UTC


README

一个用于将值写入 .env (DotEnv) 文件的 PHP 库

安装

可以使用 Composer 安装 DotEnvWriter。

composer require mirazmac/dotenvwriter

用法

$writer = new \MirazMac\DotEnv\Writer(__DIR__ . '/' . '.env');

$writer
->set('APP_NAME', 'My App')
->set('APP_URL', 'https://laravel.net.cn')
->set('APP_DIR', '${BASE_DIR}/app')
// Third parameter set to TRUE to force quote a single word value
->set('APP_BUCKET', 's3-bucket', true);

// Write the values to file
$writer->write();

API

方法

__construct(?string $sourceFile = null)

构建一个新实例。

参数

string|null $sourceFile 从中加载值的环境文件路径,可选。

set(string $key, string $value, bool $forceQuote = false) : self

设置环境变量的值,如果存在则更新,不存在则添加。值必须作为字符串传递,即使您设置的是类似于 TRUE FALSE 的值。此方法可链式调用。

参数

string $key

string $value

bool $forceQuote 默认情况下,是否将值用双引号括起来的决定是自动的。然而,您可能希望强制引号化一个值。

delete(string $key) : self

如果存在,删除环境变量。此方法可链式调用。

参数

string $key

hasChanged() : bool

声明一个或多个值是否已更改

getContent() : string

返回当前内容

write(bool $force = false, ?string $destFile = null) : bool

将内容写入 .env 文件。

参数

bool $force 默认情况下,我们仅在有更改时写入,但您可以将此设置为 TRUE 以强制写入文件。

string|null $destFile 目标文件。默认情况下,它与 $sourceFile 提供的相同

常见问题解答

这能做什么?

DotEnvWriter 是一个 PHP 库,可以写入(添加、更新、删除)到 .env 文件中的值。

它是如何做到的?

嗯,很高兴你问了.. 它使用一些前沿的 AI 算法.. 就开玩笑吧,RegEx.. 它使用 RegEx 替换值,并正确引号化转义,然后将它们写回文件系统。虽然 RegEx 不是最好的解决方案,但它完成了工作。

如果这损坏了我的 .env 文件怎么办?

嗯,不应该。它使用正确的引号化和转义来写入值。如果您想确保它生成的文件是有效的,那么这就是为什么测试存在的原因。您可以克隆仓库并运行 composer install,然后运行 phpunit 来运行测试。此库的目标是生成一个 .env 文件,可以使用: vlucas/phpdotenv 无错误地进行解析。

它是如何处理无效的 .env 文件的?

它不关心。您看,它不关心现有值的验证。它只是通过 RegEx 替换它们,并确保所做的更改是有效的。但如果您有一个现有的无效文件,它无法验证或修复它。

我可以用这个来从 .env 文件中读取值吗?

是的,您可以。但您真的不应该。因此,它们没有被记录。此库用于写入文件。要正确读取和从 .env 文件中加载值,请使用一些健壮的解决方案,如: vlucas/phpdotenv

贡献

欢迎拉取请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。

请确保根据需要更新测试。

许可

该库受到了msztorc/laravel-env软件包的启发,并使用其中的一些正则表达式,且基于相同的MIT许可协议。