mifesta/dotenv-editor

Laravel 5+ 的 .env 文件编辑工具

1.0.2 2019-09-27 15:42 UTC

This package is auto-updated.

Last update: 2024-09-28 04:12:07 UTC


README

laravel-dotenv-editor

Latest Stable Version Total Downloads Latest Unstable Version License

Laravel Dotenv Editor 是 Laravel 5+ 的 .env 文件编辑器(或具有相同结构和语法的文件)。现在您可以使用以下功能轻松编辑 .env 文件:

  • 读取文件的原始内容
  • 读取文件内容中的行
  • 读取文件内容中的设置器(键值对)
  • 确定一个设置器的键名(如果存在)
  • 将空行追加到文件中
  • 将注释行追加到文件中
  • 将新的或更新的设置器行追加到文件中
  • 删除文件中的现有设置器行
  • 备份和还原文件
  • 管理备份文件

文档

查看以下主题以了解更多关于 Laravel Dotenv Editor 的信息:

版本和兼容性

目前,Laravel Dotenv Editor 只有 1.x 版本,与 Laravel 5+ 和后续版本兼容。此包不支持 Laravel 4.2 及更早版本。

安装

您可以通过 Composer 安装此包。

  • 首先,编辑您项目的 composer.json 文件,以要求 mifesta/dotenv-editor
"require": {
    // other reqire packages
    "mifesta/dotenv-editor": "1.*"
},
  • 接下来,在您的命令行界面中运行 composer update 命令
$ composer update

注意:您可以通过命令行 $ composer require mifesta/dotenv-editor:1.* 来更快地执行上述两个步骤。

  • 一旦更新操作完成,第三步是添加服务提供者。打开 config/app.php,并将新项添加到 providers 数组中
'providers' => array(
    // other providers
    Mifesta\DotenvEditor\DotenvEditorServiceProvider::class,
),
  • 下一步是向文件 config/app.php 中的 aliases 部分添加以下行
'DotenvEditor' => Mifesta\DotenvEditor\Facades\DotenvEditor::class,

配置

要开始使用,您需要发布配置文件

$ php artisan vendor:publish --provider="Mifesta\DotenvEditor\DotenvEditorServiceProvider" --tag="config"

这将创建一个 config/dotenv-editor.php 文件,您可以在其中修改配置。同时,确保您检查了此包中原始配置文件在发布之间的更改。

自动备份模式

选项 autoBackup 用于确定在保存之前是否备份原始文件。

备份位置

选项 backupPath 是文件备份到的位置。此值是从项目应用根目录的子路径(子文件夹)。

用法

与外观协同工作

Laravel Dotenv Editor 具有一个名为 Mifesta\DotenvEditor\Facades\DotenvEditor 的外观。您可以通过此外观执行任何操作。例如

<?php

namespace YourNamespace;

// your code

use Mifesta\DotenvEditor\Facades\DotenvEditor;

class YourClass
{
    public function yourMethod()
    {
        DotenvEditor::doSomething();
    }
}

使用依赖注入

此包也支持依赖注入,您可以使用依赖注入轻松地将 Mifesta\DotenvEditor\DotenvEditor 类的实例注入到您的控制器或其他类中。示例

<?php

namespace App\Http\Controllers;

// your code

use Mifesta\DotenvEditor\DotenvEditor;

class TestDotenvEditorController extends Controller {

    protected $editor;

    public function __construct(DotenvEditor $editor)
    {
        $this->editor = $editor;
    }

    public function doSomething()
    {
        $editor = $this->editor->doSomething();
    }
}

加载文件以进行工作

默认情况下,Laravel Dotenv Editor 在您使用 DotenvEditor 门面时,将在项目根目录下加载文件 .env。示例

$content = DotenvEditor::getContent(); // Get raw content of file .env in root folder

但是,如果您想明确指定要处理哪些文件,应使用方法 load()。示例

$file = DotenvEditor::load(); // Working with file .env in root folder
$file = DotenvEditor::load('.env.example'); // Working with file .env.example in root folder
$file = DotenvEditor::load(storage_path('dotenv-editor/backups/.env.backup')); // Working with file .env.backup in folder storage/dotenv-editor/backups/

load() 方法有三个参数

$file = DotenvEditor::load($filePath, $restoreIfNotFound, $restorePath);
  • 第一个参数是您要处理的文件的路径。将 null 设置为处理根目录下的 .env 文件。
  • 第二个参数是如果文件找不到,允许恢复文件。
  • 第三个参数是用于恢复的文件路径。将 null 设置为从更早的备份文件中恢复。

读取文件内容

读取原始内容

您可以使用方法 getContent() 来获取文件的原始内容。示例

$content = DotenvEditor::getContent();

这将返回原始文件内容作为字符串

按行读取内容

使用方法 getLines() 来获取文件中的所有行。示例

$lines = DotenvEditor::getLines();

这将返回一个数组。数组中的每个元素可以查看以下信息

  • 行号
  • 行的原始内容
  • 行的解析内容,包括:行的类型(空行、注释、设置器...)、设置器的键名、设置器的值、设置器的注释...
按键读取内容

使用方法 getKeys($keys = []) 来获取文件中的所有设置器行。示例

$keys = DotenvEditor::getKeys(); // Get all keys
$keys = DotenvEditor::getKeys(['APP_DEBUG', 'APP_URL']); // Only get two given keys if exists

这将返回一个数组。数组中的每个元素可以查看以下信息

  • 行号
  • 设置器的键名
  • 设置器的值
  • 设置器的注释
  • 此键是否使用了 "export" 命令
确定键是否存在

使用方法 keyExists($key)。示例

$keyExists = DotenvEditor::keyExists('APP_URL'); // Return true|false
获取键的值

使用方法 getValue($key)。示例

$value = DotenvEditor::getValue('APP_URL');

将内容写入文件

要编辑文件内容,您有两个任务

  • 第一个是将内容写入缓冲区
  • 第二个是将缓冲区内容保存到文件
向缓冲区添加空行

使用方法 addEmpty()。示例

$file = DotenvEditor::addEmpty();
向缓冲区添加注释行

使用方法 addComment($comment)。示例

$file = DotenvEditor::addComment('This is a comment line');
向缓冲区添加或更新设置器

使用方法 setKey($key, $value = null, $comment = null, $export = false)。示例

$file = DotenvEditor::setKey('ENV_KEY'); // Set key ENV_KEY with empty value
$file = DotenvEditor::setKey('ENV_KEY', 'anything-you-want'); // Set key ENV_KEY with none empty value
$file = DotenvEditor::setKey('ENV_KEY', 'anything-you-want', 'your-comment'); // Set key ENV_KEY with a value and comment
$file = DotenvEditor::setKey('ENV_KEY', 'new-value-1'); // Update key ENV_KEY with a new value and keep earlier comment
$file = DotenvEditor::setKey('ENV_KEY', 'new-value', null, true); // Update key ENV_KEY with a new value, keep earlier comment and use 'export ' before key name
$file = DotenvEditor::setKey('ENV_KEY', 'new-value-2', '', false); // Update key ENV_KEY with a new value and clear comment
向缓冲区添加或更新多个设置器

使用方法 setKeys($data)。示例

$file = DotenvEditor::setKeys([
    [
        'key'     => 'ENV_KEY_1',
        'value'   => 'your-value-1',
        'comment' => 'your-comment-1',
        'export'  => true
    ],
    [
        'key'     => 'ENV_KEY_2',
        'value'   => 'your-value-2',
        'export'  => true
    ],
    [
        'key'     => 'ENV_KEY_3',
        'value'   => 'your-value-3',
    ]
]);
删除缓冲区中的设置器行

使用方法 deleteKey($key)。示例

$file = DotenvEditor::deleteKey('ENV_KEY');
删除缓冲区中的多个设置器行

使用方法 deleteKeys($keys)。示例

$file = DotenvEditor::deleteKeys(['ENV_KEY_1', 'ENV_KEY_2']); // Delete two keys
将缓冲区保存到文件
$file = DotenvEditor::save();

备份和还原文件

备份您的文件
$file = DotenvEditor::backup();
获取所有备份版本
$backups = DotenvEditor::getBackups();
获取最新备份版本
$latestBackup = DotenvEditor::getLatestBackup();
从最新备份或其他文件还原您的文件
$file = DotenvEditor::restore(); // Restore from latest backup
$file = DotenvEditor::restore(storage_path('dotenv-editor/backups/.env.backup_2017_04_10_152709')); // Restore from other file
删除单个备份文件
$file = DotenvEditor::deleteBackup(storage_path('dotenv-editor/backups/.env.backup_2017_04_10_152709'));
删除多个备份文件
$file = DotenvEditor::deleteBackups([
    storage_path('dotenv-editor/backups/.env.backup_2017_04_10_152709'),
    storage_path('dotenv-editor/backups/.env.backup_2017_04_11_091552')
]); // Delete two backup file

$file = DotenvEditor::deleteBackups(); // Delete all backup
更改自动备份模式
$file = DotenvEditor::autoBackup(true); // Enable auto backup
$file = DotenvEditor::autoBackup(false); // Disable auto backup

方法链

加载、写入、备份、恢复的一些功能是实现和使用方法链。因此,这些功能可以在单个语句中调用以串联。示例

$file = DotenvEditor::load('.env.example')->backup()->setKey('APP_URL', 'http://example.com')->save();
return $file->getKeys();

与 Artisan CLI 协同工作

现在,Laravel Dotenv Editor 有 6 个可以在 Artisan CLI 中轻松使用的命令。例如

  • php artisan dotenv:backup
  • php artisan dotenv:get-backups
  • php artisan dotenv:restore
  • php artisan dotenv:get-keys
  • php artisan dotenv:set-key
  • php artisan dotenv:delete-key

请使用上述命令与选项 --help(-h) 获取使用细节。示例

$ php artisan dotenv:get-backups --help

异常

许可证

Laravel Dotenv Editor 是开源软件,许可协议为 MIT 协议

感谢使用

希望,这个包对您有所帮助。