Редактор Laravel Dotenv - это редактор файлов .env (или файлы с той же структурой и синтаксисом) для Laravel 5.8+. Теперь вы можете легко отредактировать файлы .ENV со следующими функциями:
Редактор Laravel Dotenv совместим с Laravel 5.8 и позже.
2.x После выпуска 1.2.1 версия 1.x будет прекращена в пользу новой версии (версия 2.x ) с некоторыми изменениями, которые будут совместимы с методом анализа пакета vlucas/phpdotenv . Версия 2.x сильно изменилась по сравнению с предыдущей версией. Если вы использовали более ранние версии этого пакета, внимательно перечитайте инструкции.
Посмотрите на одну из следующих тем, чтобы узнать больше о редакторе Laravel Dotenv:
Вы можете установить этот пакет через композитор. В корне вашего каталога приложений запустите следующую команду (в любом клиенте терминала):
$ composer require jackiedo/dotenv-editorЧтобы начать использование пакета, вы должны опубликовать файл конфигурации, чтобы вы могли настроить пакет по мере необходимости. Для этого запустите следующую команду (в любом клиенте терминала) в корне вашего приложения:
$ php artisan vendor:publish --provider= " JackiedoDotenvEditorDotenvEditorServiceProvider " --tag= " config " Это создаст файл config/dotenv-editor.php в вашем приложении, который вы можете изменить для установки вашей конфигурации. Кроме того, убедитесь, что вы проверяете изменения в исходном файле конфигурации в этом пакете между выпусками. В настоящее время есть следующие настройки:
Настройка autoBackup позволяет автоматически создавать резервное копирование вашего исходного файла перед сохранением. Установите его на true , чтобы согласиться.
Настройка backupPath используется для указания, где ваш файл резервирован. Это значение представляет собой поместный путь (подпад) из корневой папки приложения проекта.
Настройка alwaysCreateBackupFolder используется для запроса, чтобы всегда была создана папка резервного копирования, независимо от того, выполняется ли резервное копирование.
Редактор Laravel Dotenv имеет фасад с именем JackiedoDotenvEditorFacadesDotenvEditor . Вы можете выполнить все операции через этот фасад.
Пример:
<?php namespace Your Namespace ;
// ...
use Jackiedo DotenvEditor Facades DotenvEditor ;
class YourClass
{
public function yourMethod ()
{
$ return = DotenvEditor:: doSomething ();
}
} Этот пакет также поддерживает инъекцию зависимости. Вы можете легко ввести экземпляр класса JackiedoDotenvEditorDotenvEditor в свой контроллер или другие классы.
Пример:
<?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 ()
{
$ return = $ this -> editor -> doSomething ();
}
} По умолчанию редактор Laravel Dotenv загрузит файл dotenv, который Laravel читает в вашем проекте. То есть, если ваш Laravel использует файл .env.local для хранения значений конфигурации, редактор Laravel Dotenv также загружает содержимое из этого файла по умолчанию.
Однако, если вы хотите явно указать файлы, с которыми вы собираетесь работать, вы должны использовать метод load() .
Синтаксис метода:
/**
* Load file for working
*
* @param string|null $filePath The file path
* @param boolean $restoreIfNotFound Restore this file from other file if it's not found
* @param string|null $restorePath The file path you want to restore from
*
* @return DotenvEditor
*/
public function load( $ filePath = null , $ restoreIfNotFound = false , $ restorePath = null );Пример:
// Working with the dotenv file that Laravel is using
$ editor = DotenvEditor:: load ();
// Working with file .env.example in root folder of project
$ editor = DotenvEditor:: load ( base_path ( ' .env.example ' ));
// Working with file .env.backup in folder storage/dotenv-editor/backups/
$ editor = DotenvEditor:: load ( storage_path ( ' dotenv-editor/backups/.env.backup ' )); Примечание. Метод load() имеет три параметра:
$filePath : путь к файлу, с которым вы хотите работать. Установите null для работы с файлом .env в корневой папке.$restoreIfNotFound : Позволяет восстановить ваш файл, если он не найден.$restorePath : путь к файлу, используемому для восстановления. Установите null , чтобы восстановить из более старого файла резервного копирования.Синтаксис метода:
/**
* Get raw content of file
*
* @return string
*/
public function getContent ();Пример:
$ rawContent = DotenvEditor:: getContent ();Синтаксис метода:
/**
* Get all entries from file
*
* @return array
*/
public function getEntries( bool $ withParsedData = false );Пример:
$ lines = DotenvEditor:: getEntries ( true );Примечание: это вернет массив. Каждый элемент в массиве состоит из следующих пунктов:
$withParsedData установлен на true ), включая: тип записи (пустой, комментарий, сеттер ...), имя сеттера, значение Setter, комментарий Setter ... Синтаксис метода:
/**
* Get all or exists given keys in file content
*
* @param array $keys
*
* @return array
*/
public function getKeys ( $ keys = []);Пример:
// Get all keys
$ keys = DotenvEditor:: getKeys ();
// Only get two given keys if exists
$ keys = DotenvEditor:: getKeys ([ ' APP_DEBUG ' , ' APP_URL ' ]);Примечание: это вернет массив. Каждый элемент в массиве состоит из следующих пунктов:
Синтаксис метода:
/**
* Return information of entry matching to a given key in the file content.
*
* @throws KeyNotFoundException
*
* @return array
*/
public function getKey ( $ key );Пример:
// Get all keys
$ keys = DotenvEditor:: getKey ( ' EXAMPLE_KEY ' );Синтаксис метода:
/**
* Check, if a given key is exists in the file content
*
* @param string $keys
*
* @return bool
*/
public function keyExists ( $ key );Пример:
$ keyExists = DotenvEditor:: keyExists ( ' APP_URL ' );Синтаксис метода:
/**
* Return the value matching to a given key in the file content
*
* @param $key
*
* @throws KeyNotFoundException
*
* @return string
*/
public function getValue ( $ key );Пример:
$ value = DotenvEditor:: getValue ( ' APP_URL ' );Чтобы редактировать контент файла, у вас есть две задания:
Всегда имейте в виду, что содержимое буфера и файла Dotenv не будет таким же, если вы не сохранили содержимое.
Синтаксис метода:
/**
* Add empty line to buffer
*
* @return DotenvEditor
*/
public function addEmpty ();Пример:
$ editor = DotenvEditor:: addEmpty ();Синтаксис метода:
/**
* Add comment line to buffer
*
* @param string $comment
*
* @return DotenvEditor
*/
public function addComment( string $ comment );Пример:
$ editor = DotenvEditor:: addComment ( ' This is a comment line ' );Синтаксис метода:
/**
* Set one key to|in the buffer.
*
* @param string $key Key name of setter
* @param null|string $value Value of setter
* @param null|string $comment Comment of setter
* @param null|bool $export Leading key name by "export "
*
* @return DotenvEditor
*/
public function setKey( string $ key , ? string $ value = null , ? string $ comment = null , $ export = null );Пример:
// Set key ENV_KEY with empty value
$ editor = DotenvEditor:: setKey ( ' ENV_KEY ' );
// Set key ENV_KEY with none empty value
$ editor = DotenvEditor:: setKey ( ' ENV_KEY ' , ' anything you want ' );
// Set key ENV_KEY with a value and comment
$ editor = DotenvEditor:: setKey ( ' ENV_KEY ' , ' anything you want ' , ' your comment ' );
// Update key ENV_KEY with a new value and keep earlier comment
$ editor = DotenvEditor:: setKey ( ' ENV_KEY ' , ' new value 1 ' );
// Update key ENV_KEY with a new value, keep previous comment and use the 'export' keyword before key name
$ editor = DotenvEditor:: setKey ( ' ENV_KEY ' , ' new value ' , null , true );
// Update key ENV_KEY with a new value, remove comment and keep previous export status
$ editor = DotenvEditor:: setKey ( ' ENV_KEY ' , ' new-value-2 ' , '' );
// Update key ENV_KEY with a new value, remove comment and export keyword
$ editor = DotenvEditor:: setKey ( ' ENV_KEY ' , ' new-value-2 ' , '' , false );Синтаксис метода:
/**
* Set many keys to buffer
*
* @param array $data
*
* @return DotenvEditor
*/
public function setKeys ( $ data );Пример:
$ editor = 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 ' ,
]
]);В качестве альтернативы, вы также можете предоставить ассоциативный массив ключей и значений:
$ editor = DotenvEditor:: setKeys ([
' ENV_KEY_1 ' => ' your-value-1 ' ,
' ENV_KEY_2 ' => ' your-value-2 ' ,
' ENV_KEY_3 ' => ' your-value-3 ' ,
]);Синтаксис метода:
/**
* Set the comment for setter.
*
* @param string $key Key name of setter
* @param null|string $comment The comment content
*
* @return DotenvEditor
*/
public function setSetterComment( string $ key , ? string $ comment = null );Пример:
$ editor = DotenvEditor:: setSetterComment ( ' ENV_KEY ' , ' new comment ' );Синтаксис метода:
/**
* Set the export status for setter.
*
* @param string $key Key name of setter
* @param bool $state Leading key name by "export "
*
* @return DotenvEditor
*/
public function setExportSetter( string $ key , bool $ state = true );Пример:
$ editor = DotenvEditor:: setExportSetter ( ' ENV_KEY ' , false );Синтаксис метода:
/**
* Delete on key in buffer
*
* @param string $key Key name of setter
*
* @return DotenvEditor
*/
public function deleteKey ( $ key );Пример:
$ editor = DotenvEditor:: deleteKey ( ' ENV_KEY ' );Синтаксис метода:
/**
* Delete many keys in buffer
*
* @param array $keys
*
* @return DotenvEditor
*/
public function deleteKeys ( $ keys = []);Пример:
// Delete two keys
$ editor = DotenvEditor:: deleteKeys ([ ' ENV_KEY_1 ' , ' ENV_KEY_2 ' ]);Синтаксис метода:
/**
* Determine if the buffer has changed.
*
* @return bool
*/
public function hasChanged ();Синтаксис метода:
/**
* Save buffer to file.
*
* @param bool $rebuildBuffer Rebuild buffer from content of dotenv file
*
* @return DotenvEditor
*/
public function save( bool $ rebuildBuffer = true );Пример:
$ editor = DotenvEditor:: save ();Синтаксис метода:
/**
* Create one backup of loaded file
*
* @return DotenvEditor
*/
public function backup ();Пример:
$ editor = DotenvEditor:: backup ();Синтаксис метода:
/**
* Return an array with all available backups
*
* @return array
*/
public function getBackups ();Пример:
$ backups = DotenvEditor:: getBackups ();Синтаксис метода:
/**
* Return the information of the latest backup file
*
* @return array
*/
public function getLatestBackup ();Пример:
$ latestBackup = DotenvEditor:: getLatestBackup ();Синтаксис метода:
/**
* Restore the loaded file from latest backup file or from special file.
*
* @param string|null $filePath
*
* @return DotenvEditor
*/
public function restore ( $ filePath = null );Пример:
// Restore from latest backup
$ editor = DotenvEditor:: restore ();
// Restore from other file
$ editor = DotenvEditor:: restore ( storage_path ( ' dotenv-editor/backups/.env.backup_2017_04_10_152709 ' ));Синтаксис метода:
/**
* Delete the given backup file
*
* @param string $filePath
*
* @return DotenvEditor
*/
public function deleteBackup ( $ filePath );Пример:
$ editor = DotenvEditor:: deleteBackup ( storage_path ( ' dotenv-editor/backups/.env.backup_2017_04_10_152709 ' ));Синтаксис метода:
/**
* Delete all or the given backup files
*
* @param array $filePaths
*
* @return DotenvEditor
*/
public function deleteBackups ( $ filePaths = []);Пример:
// Delete two backup file
$ editor = 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 all backup
$ editor = DotenvEditor:: deleteBackups ();Синтаксис метода:
/**
* Switching of the auto backup mode
*
* @param boolean $on
*
* @return DotenvEditor
*/
public function autoBackup ( $ on = true );Пример:
// Enable auto backup
$ editor = DotenvEditor:: autoBackup ( true );
// Disable auto backup
$ editor = DotenvEditor:: autoBackup ( false );Некоторые функции загрузки, написания, резервного копирования, восстановления цепочки методов поддержки. Таким образом, эти функции можно назвать цепью вместе в одном утверждении. Пример:
$ editor = DotenvEditor:: load ( ' .env.example ' )-> backup ()-> setKey ( ' APP_URL ' , ' http://example.com ' )-> save ();
return $ editor -> getKeys ();Теперь редактор Laravel Dotenv имеет 6 команд, которые можно легко использовать с ремесленным CLI. Это:
php artisan dotenv:backupphp artisan dotenv:get-backupsphp artisan dotenv:restorephp artisan dotenv:get-keysphp artisan dotenv:set-keyphp artisan dotenv:delete-key Пожалуйста, используйте каждую из команд с опцией --help , чтобы узнать больше об использовании.
Пример:
$ php artisan dotenv:get-backups --helpЭтот пакет вызовет исключения, если что -то пойдет не так. Таким образом, проще отлаживать ваш код, используя этот пакет или обрабатывать ошибку на основе типа исключений.
| Исключение | Причина |
|---|---|
| FilenotFoundException | Когда файл не был найден. |
| InvalidKeyException | Когда ключ сеттера недействителен. |
| InvalidValueException | Когда значение установки недействителен. |
| KeyNotFoundException | Когда запрашиваемый ключ не существует в файле. |
| Nobackupavailableexception | Когда нет резервного файла. |
| UntableDeadFileException | При неспособности прочитать файл. |
| Несоблюдение | При неспособности записать в файл. |
Этот проект существует благодаря всем его участникам.
MIT © Jackie Do