quhang / dotenv-editor
用于Laravel 5+的.env文件编辑工具
Requires
- php: >=5.4.0
- illuminate/config: >=5.0
- illuminate/container: >=5.0
- illuminate/support: >=5.0
README
[由JackieDo/Laravel-Dotenv-Editor 分支而来] Laravel Dotenv Editor是Laravel 5+的.env文件编辑器(或具有相同结构和语法的文件)。现在您可以通过以下功能轻松编辑.env文件
- 读取文件的原始内容
- 读取文件内容中的行
- 读取文件内容中的设置(键值对)
- 确定是否存在设置的一个键名
- 将空行追加到文件中
- 将注释行追加到文件中
- 将新行或更新现有设置行追加到文件中
- 删除文件中的现有设置行
- 备份和还原文件
- 管理备份文件
文档
查看以下主题之一以了解更多关于Laravel Dotenv Editor的信息
版本和兼容性
目前,Laravel Dotenv Editor只有1.x版本与Laravel 5+和更高版本兼容。此包不支持Laravel 4.2及更早版本。
安装
您可以通过Composer安装此包。
- 首先,编辑您的项目中的
composer.json
文件以要求quhang/dotenv-editor
... "require": { ... "quhang/dotenv-editor": "1.*" },
- 接下来,在您的命令行界面运行composer update命令
$ composer update
注意:您可以通过以下命令行
$ composer require quhang/dotenv-editor:1.*
更快地执行上述两个步骤。
- 更新操作完成后,第三步是添加服务提供者。打开
config/app.php
,并在提供者数组中添加一个新的条目
... 'providers' => array( ... Jackiedo\DotenvEditor\DotenvEditorServiceProvider::class, ),
- 下一步是在文件
config/app.php
的aliases
部分添加以下行
'DotenvEditor' => Jackiedo\DotenvEditor\Facades\DotenvEditor::class,
配置
要开始,您需要发布配置文件
$ php artisan vendor:publish --provider="Jackiedo\DotenvEditor\DotenvEditorServiceProvider" --tag="config"
这将在您的应用程序中创建一个config/dotenv-editor.php
文件,您可以修改它以设置您的配置。同时,请确保检查本包中原始配置文件之间的更改。
自动备份模式
选项autoBackup
确定在保存之前是否备份原始文件。
备份位置
选项backupPath
是文件备份的位置。此值是从项目应用程序根文件夹的子路径(子文件夹)。
使用方法
使用外观进行操作
Laravel Dotenv Editor有一个名为Jackiedo\DotenvEditor\Facades\DotenvEditor
的外观。您可以通过此外观执行任何操作。例如
<?php namespace Your\Namespace;
...
use Jackiedo\DotenvEditor\Facades\DotenvEditor;
class YourClass
{
public function yourMethod()
{
DotenvEditor::doSomething();
}
}
使用依赖注入
此包还支持依赖注入,您可以通过依赖注入轻松地将Jackiedo\DotenvEditor\DotenvEditor
类的实例注入到您的控制器或其他类中。示例
<?php namespace App\Http\Controllers;
...
use Jackiedo\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选项获取使用详情。例如
$ php artisan dotenv:get-backups --help
异常
许可证
MIT © Jackie Do
感谢使用
希望这个包对您有帮助。