mirazmac / dotenvwriter
一个用于将值写入 .env (DotEnv) 文件的 PHP 库
Requires
- php: >=7.0
Requires (Dev)
- phpunit/phpunit: ^6
- vlucas/phpdotenv: ^5.3
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许可协议。