O editor do Laravel Dotenv é o editor de arquivos .env (ou arquivos com a mesma estrutura e sintaxe) para o Laravel 5.8+. Agora você pode editar facilmente arquivos .env com os seguintes recursos:
O editor do Laravel Dotenv é compatível com o Laravel 5.8 e posterior.
2.x Após o lançamento do 1.2.1 , a versão 1.x será descontinuada em favor de uma nova versão (versão 2.x ) com algumas alterações a serem compatíveis com o método de análise do pacote vlucas/phpdotenv . A versão 2.x mudou bastante em comparação com a versão anterior. Se você usou versões anteriores deste pacote, releia cuidadosamente as instruções.
Veja um dos seguintes tópicos para saber mais sobre o editor do Laravel Dotenv:
Você pode instalar este pacote através do Composer. Na raiz do diretório do seu aplicativo, execute o seguinte comando (em qualquer cliente do terminal):
$ composer require jackiedo/dotenv-editorPara começar a usar o pacote, você deve publicar o arquivo de configuração para poder configurar o pacote conforme necessário. Para fazer isso, execute o seguinte comando (em qualquer cliente do terminal) na raiz do seu aplicativo:
$ php artisan vendor:publish --provider= " JackiedoDotenvEditorDotenvEditorServiceProvider " --tag= " config " Isso criará um arquivo config/dotenv-editor.php no seu aplicativo que você pode modificar para definir sua configuração. Além disso, verifique se há alterações no arquivo de configuração original neste pacote entre as versões. Atualmente, existem as seguintes configurações:
A configuração autoBackup permite que seu arquivo original seja backup automaticamente antes de salvar. Defina -o como true para concordar.
A configuração backupPath é usada para especificar onde seu arquivo é backup. Este valor é um sub-caminho (subpasta) da pasta raiz do aplicativo do projeto.
A configuração alwaysCreateBackupFolder é usada para solicitar que a pasta de backup seja sempre criada, independentemente de o backup ser executado ou não.
O editor de Laravel Dotenv tem uma fachada com o nome JackiedoDotenvEditorFacadesDotenvEditor . Você pode executar todas as operações nessa fachada.
Exemplo:
<?php namespace Your Namespace ;
// ...
use Jackiedo DotenvEditor Facades DotenvEditor ;
class YourClass
{
public function yourMethod ()
{
$ return = DotenvEditor:: doSomething ();
}
} Este pacote também suporta injeção de dependência. Você pode injetar facilmente uma instância da classe JackiedoDotenvEditorDotenvEditor em seu controlador ou em outras classes.
Exemplo:
<?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 ();
}
} Por padrão, o editor do Laravel Dotenv carregará o arquivo DOTENV que o Laravel está lendo em seu projeto. Ou seja, se o seu Laravel estiver usando o arquivo .env.local para armazenar os valores de configuração, o editor do Laravel Dotenv também carrega o conteúdo desse arquivo por padrão.
No entanto, se você deseja especificar explicitamente os arquivos com o qual vai trabalhar, use o método load() .
Sintaxe do método:
/**
* 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 );Exemplo:
// 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 ' )); Nota: O método load() possui três parâmetros:
$filePath : o caminho para o arquivo com o qual você deseja trabalhar. Defina null para trabalhar com o arquivo .env na pasta raiz.$restoreIfNotFound : Permite restaurar seu arquivo se não for encontrado.$restorePath : O caminho para o arquivo usado para restaurar. Defina null para restaurar a partir de um arquivo de backup mais antigo.Sintaxe do método:
/**
* Get raw content of file
*
* @return string
*/
public function getContent ();Exemplo:
$ rawContent = DotenvEditor:: getContent ();Sintaxe do método:
/**
* Get all entries from file
*
* @return array
*/
public function getEntries( bool $ withParsedData = false );Exemplo:
$ lines = DotenvEditor:: getEntries ( true );Nota: Isso retornará uma matriz. Cada elemento na matriz consiste nos seguintes itens:
$withParsedData estiver definido como true ), incluindo: tipo de entrada (vazio, comentário, setter ...), nome da chave do setter, valor do setter, comentário do setter ... Sintaxe do método:
/**
* Get all or exists given keys in file content
*
* @param array $keys
*
* @return array
*/
public function getKeys ( $ keys = []);Exemplo:
// Get all keys
$ keys = DotenvEditor:: getKeys ();
// Only get two given keys if exists
$ keys = DotenvEditor:: getKeys ([ ' APP_DEBUG ' , ' APP_URL ' ]);Nota: Isso retornará uma matriz. Cada elemento na matriz consiste nos seguintes itens:
Sintaxe do método:
/**
* Return information of entry matching to a given key in the file content.
*
* @throws KeyNotFoundException
*
* @return array
*/
public function getKey ( $ key );Exemplo:
// Get all keys
$ keys = DotenvEditor:: getKey ( ' EXAMPLE_KEY ' );Sintaxe do método:
/**
* Check, if a given key is exists in the file content
*
* @param string $keys
*
* @return bool
*/
public function keyExists ( $ key );Exemplo:
$ keyExists = DotenvEditor:: keyExists ( ' APP_URL ' );Sintaxe do método:
/**
* Return the value matching to a given key in the file content
*
* @param $key
*
* @throws KeyNotFoundException
*
* @return string
*/
public function getValue ( $ key );Exemplo:
$ value = DotenvEditor:: getValue ( ' APP_URL ' );Para editar o conteúdo do arquivo, você tem dois empregos:
Sempre lembre -se de que o conteúdo do buffer e o arquivo DOTENV não serão os mesmos, a menos que você tenha salvado o conteúdo.
Sintaxe do método:
/**
* Add empty line to buffer
*
* @return DotenvEditor
*/
public function addEmpty ();Exemplo:
$ editor = DotenvEditor:: addEmpty ();Sintaxe do método:
/**
* Add comment line to buffer
*
* @param string $comment
*
* @return DotenvEditor
*/
public function addComment( string $ comment );Exemplo:
$ editor = DotenvEditor:: addComment ( ' This is a comment line ' );Sintaxe do método:
/**
* 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 );Exemplo:
// 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 );Sintaxe do método:
/**
* Set many keys to buffer
*
* @param array $data
*
* @return DotenvEditor
*/
public function setKeys ( $ data );Exemplo:
$ 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 ' ,
]
]);Como alternativa, você também pode fornecer uma variedade associativa de chaves e valores:
$ editor = DotenvEditor:: setKeys ([
' ENV_KEY_1 ' => ' your-value-1 ' ,
' ENV_KEY_2 ' => ' your-value-2 ' ,
' ENV_KEY_3 ' => ' your-value-3 ' ,
]);Sintaxe do método:
/**
* 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 );Exemplo:
$ editor = DotenvEditor:: setSetterComment ( ' ENV_KEY ' , ' new comment ' );Sintaxe do método:
/**
* 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 );Exemplo:
$ editor = DotenvEditor:: setExportSetter ( ' ENV_KEY ' , false );Sintaxe do método:
/**
* Delete on key in buffer
*
* @param string $key Key name of setter
*
* @return DotenvEditor
*/
public function deleteKey ( $ key );Exemplo:
$ editor = DotenvEditor:: deleteKey ( ' ENV_KEY ' );Sintaxe do método:
/**
* Delete many keys in buffer
*
* @param array $keys
*
* @return DotenvEditor
*/
public function deleteKeys ( $ keys = []);Exemplo:
// Delete two keys
$ editor = DotenvEditor:: deleteKeys ([ ' ENV_KEY_1 ' , ' ENV_KEY_2 ' ]);Sintaxe do método:
/**
* Determine if the buffer has changed.
*
* @return bool
*/
public function hasChanged ();Sintaxe do método:
/**
* Save buffer to file.
*
* @param bool $rebuildBuffer Rebuild buffer from content of dotenv file
*
* @return DotenvEditor
*/
public function save( bool $ rebuildBuffer = true );Exemplo:
$ editor = DotenvEditor:: save ();Sintaxe do método:
/**
* Create one backup of loaded file
*
* @return DotenvEditor
*/
public function backup ();Exemplo:
$ editor = DotenvEditor:: backup ();Sintaxe do método:
/**
* Return an array with all available backups
*
* @return array
*/
public function getBackups ();Exemplo:
$ backups = DotenvEditor:: getBackups ();Sintaxe do método:
/**
* Return the information of the latest backup file
*
* @return array
*/
public function getLatestBackup ();Exemplo:
$ latestBackup = DotenvEditor:: getLatestBackup ();Sintaxe do método:
/**
* Restore the loaded file from latest backup file or from special file.
*
* @param string|null $filePath
*
* @return DotenvEditor
*/
public function restore ( $ filePath = null );Exemplo:
// 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 ' ));Sintaxe do método:
/**
* Delete the given backup file
*
* @param string $filePath
*
* @return DotenvEditor
*/
public function deleteBackup ( $ filePath );Exemplo:
$ editor = DotenvEditor:: deleteBackup ( storage_path ( ' dotenv-editor/backups/.env.backup_2017_04_10_152709 ' ));Sintaxe do método:
/**
* Delete all or the given backup files
*
* @param array $filePaths
*
* @return DotenvEditor
*/
public function deleteBackups ( $ filePaths = []);Exemplo:
// 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 ();Sintaxe do método:
/**
* Switching of the auto backup mode
*
* @param boolean $on
*
* @return DotenvEditor
*/
public function autoBackup ( $ on = true );Exemplo:
// Enable auto backup
$ editor = DotenvEditor:: autoBackup ( true );
// Disable auto backup
$ editor = DotenvEditor:: autoBackup ( false );Algumas funções de carregamento, escrita, backup e restauração do encadeamento do método de suporte. Portanto, essas funções podem ser encaderadas em uma única declaração. Exemplo:
$ editor = DotenvEditor:: load ( ' .env.example ' )-> backup ()-> setKey ( ' APP_URL ' , ' http://example.com ' )-> save ();
return $ editor -> getKeys ();Agora, o editor do Laravel Dotenv possui 6 comandos que podem ser usados facilmente com o CLI artesão. Estes são:
php artisan dotenv:backupphp artisan dotenv:get-backupsphp artisan dotenv:restorephp artisan dotenv:get-keysphp artisan dotenv:set-keyphp artisan dotenv:delete-key Por favor, use cada um dos comandos com a opção --help para se inclinar mais sobre o uso.
Exemplo:
$ php artisan dotenv:get-backups --helpEste pacote lançará exceções se algo der errado. Dessa forma, é mais fácil depurar seu código usando este pacote ou lidar com o erro com base no tipo de exceção.
| Exceção | Razão |
|---|---|
| FilenotfoundException | Quando o arquivo não foi encontrado. |
| InvalidKeyException | Quando a chave do setter é inválida. |
| InvalidValueException | Quando o valor do setter é inválido. |
| KeynotfoundException | Quando a chave solicitada não existe no arquivo. |
| NOBACKUPAVALEBLEEXCECTION | Quando não existe arquivo de backup. |
| UnableReadfileException | Quando não conseguir ler o arquivo. |
| UnableWriteTofileException | Quando não conseguir escrever no arquivo. |
Este projeto existe graças a todos os seus colaboradores.
Mit © Jackie fazer