Laravel Dotenv Editor es el editor de archivos .env (o archivos con la misma estructura y sintaxis) para Laravel 5.8+. Ahora puede editar fácilmente archivos .env con las siguientes características:
El editor Dotenv de Laravel es compatible con Laravel 5.8 y posterior.
2.x Después del lanzamiento de 1.2.1 , la versión 1.x se suspenderá a favor de una nueva versión (versión 2.x ) con algunos cambios para ser compatibles con el método de análisis del paquete vlucas/phpdotenv . La versión 2.x ha cambiado bastante en comparación con la versión anterior. Si ha utilizado versiones anteriores de este paquete, vuelva a leer las instrucciones cuidadosamente.
Mire uno de los siguientes temas para obtener más información sobre el editor de Dotenv de Laravel:
Puede instalar este paquete a través del compositor. En la raíz de su directorio de aplicación, ejecute el siguiente comando (en cualquier cliente terminal):
$ composer require jackiedo/dotenv-editorPara comenzar a usar el paquete, debe publicar el archivo de configuración para poder configurar el paquete según sea necesario. Para hacer eso, ejecute el siguiente comando (en cualquier cliente terminal) en la raíz de su aplicación:
$ php artisan vendor:publish --provider= " JackiedoDotenvEditorDotenvEditorServiceProvider " --tag= " config " Esto creará un archivo config/dotenv-editor.php en su aplicación que puede modificar para configurar su configuración. Además, asegúrese de verificar los cambios en el archivo de configuración original en este paquete entre versiones. Actualmente hay la siguiente configuración:
La configuración autoBackup permite que su archivo original se respalde automáticamente antes de guardar. Establecerlo en true para estar de acuerdo.
La configuración backupPath se usa para especificar dónde está su archivo respaldado. Este valor es una ruta sub (subcarpeta) de la carpeta raíz de la aplicación del proyecto.
La configuración alwaysCreateBackupFolder se usa para solicitar que siempre se cree la carpeta de copia de seguridad, ya sea que se realice o no la copia de seguridad.
El editor de Dotenv de Laravel tiene una fachada con el nombre JackiedoDotenvEditorFacadesDotenvEditor . Puede realizar todas las operaciones a través de esta fachada.
Ejemplo:
<?php namespace Your Namespace ;
// ...
use Jackiedo DotenvEditor Facades DotenvEditor ;
class YourClass
{
public function yourMethod ()
{
$ return = DotenvEditor:: doSomething ();
}
} Este paquete también admite la inyección de dependencia. Puede inyectar fácilmente una instancia de la clase JackiedoDotenvEditorDotenvEditor en su controlador u otras clases.
Ejemplo:
<?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 ();
}
} De manera predeterminada, el editor Dotenv de Laravel cargará el archivo Dotenv del que Laravel está leyendo en su proyecto. Es decir, si su laravel está utilizando el archivo .env.local para almacenar los valores de configuración, el editor Dotenv Laravel también carga el contenido de ese archivo de forma predeterminada.
Sin embargo, si desea especificar explícitamente los archivos con los que va a trabajar, debe usar el método load() .
Sintaxis del 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 );Ejemplo:
// 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: El método load() tiene tres parámetros:
$filePath : la ruta al archivo con el que desea trabajar. Establezca null para trabajar con el archivo .env en la carpeta raíz.$restoreIfNotFound : permite restaurar su archivo si no se encuentra.$restorePath : La ruta al archivo utilizado para restaurar. Establezca null para restaurar desde un archivo de copia de seguridad anterior.Sintaxis del método:
/**
* Get raw content of file
*
* @return string
*/
public function getContent ();Ejemplo:
$ rawContent = DotenvEditor:: getContent ();Sintaxis del método:
/**
* Get all entries from file
*
* @return array
*/
public function getEntries( bool $ withParsedData = false );Ejemplo:
$ lines = DotenvEditor:: getEntries ( true );Nota: Esto devolverá una matriz. Cada elemento en la matriz consta de los siguientes elementos:
$withParsedData se establece en true ), que incluye: tipo de entrada (vacía, comentario, setter ...), nombre clave de setter, valor de setter, comentario de setter ... Sintaxis del método:
/**
* Get all or exists given keys in file content
*
* @param array $keys
*
* @return array
*/
public function getKeys ( $ keys = []);Ejemplo:
// Get all keys
$ keys = DotenvEditor:: getKeys ();
// Only get two given keys if exists
$ keys = DotenvEditor:: getKeys ([ ' APP_DEBUG ' , ' APP_URL ' ]);Nota: Esto devolverá una matriz. Cada elemento en la matriz consta de los siguientes elementos:
Sintaxis del método:
/**
* Return information of entry matching to a given key in the file content.
*
* @throws KeyNotFoundException
*
* @return array
*/
public function getKey ( $ key );Ejemplo:
// Get all keys
$ keys = DotenvEditor:: getKey ( ' EXAMPLE_KEY ' );Sintaxis del método:
/**
* Check, if a given key is exists in the file content
*
* @param string $keys
*
* @return bool
*/
public function keyExists ( $ key );Ejemplo:
$ keyExists = DotenvEditor:: keyExists ( ' APP_URL ' );Sintaxis del método:
/**
* Return the value matching to a given key in the file content
*
* @param $key
*
* @throws KeyNotFoundException
*
* @return string
*/
public function getValue ( $ key );Ejemplo:
$ value = DotenvEditor:: getValue ( ' APP_URL ' );Para editar contenido del archivo, tiene dos trabajos:
Siempre tenga en cuenta que el contenido del búfer y el archivo Dotenv no será el mismo a menos que haya guardado el contenido.
Sintaxis del método:
/**
* Add empty line to buffer
*
* @return DotenvEditor
*/
public function addEmpty ();Ejemplo:
$ editor = DotenvEditor:: addEmpty ();Sintaxis del método:
/**
* Add comment line to buffer
*
* @param string $comment
*
* @return DotenvEditor
*/
public function addComment( string $ comment );Ejemplo:
$ editor = DotenvEditor:: addComment ( ' This is a comment line ' );Sintaxis del 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 );Ejemplo:
// 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 );Sintaxis del método:
/**
* Set many keys to buffer
*
* @param array $data
*
* @return DotenvEditor
*/
public function setKeys ( $ data );Ejemplo:
$ 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 ' ,
]
]);Alternativamente, también puede proporcionar una matriz asociativa de claves y valores:
$ editor = DotenvEditor:: setKeys ([
' ENV_KEY_1 ' => ' your-value-1 ' ,
' ENV_KEY_2 ' => ' your-value-2 ' ,
' ENV_KEY_3 ' => ' your-value-3 ' ,
]);Sintaxis del 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 );Ejemplo:
$ editor = DotenvEditor:: setSetterComment ( ' ENV_KEY ' , ' new comment ' );Sintaxis del 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 );Ejemplo:
$ editor = DotenvEditor:: setExportSetter ( ' ENV_KEY ' , false );Sintaxis del método:
/**
* Delete on key in buffer
*
* @param string $key Key name of setter
*
* @return DotenvEditor
*/
public function deleteKey ( $ key );Ejemplo:
$ editor = DotenvEditor:: deleteKey ( ' ENV_KEY ' );Sintaxis del método:
/**
* Delete many keys in buffer
*
* @param array $keys
*
* @return DotenvEditor
*/
public function deleteKeys ( $ keys = []);Ejemplo:
// Delete two keys
$ editor = DotenvEditor:: deleteKeys ([ ' ENV_KEY_1 ' , ' ENV_KEY_2 ' ]);Sintaxis del método:
/**
* Determine if the buffer has changed.
*
* @return bool
*/
public function hasChanged ();Sintaxis del método:
/**
* Save buffer to file.
*
* @param bool $rebuildBuffer Rebuild buffer from content of dotenv file
*
* @return DotenvEditor
*/
public function save( bool $ rebuildBuffer = true );Ejemplo:
$ editor = DotenvEditor:: save ();Sintaxis del método:
/**
* Create one backup of loaded file
*
* @return DotenvEditor
*/
public function backup ();Ejemplo:
$ editor = DotenvEditor:: backup ();Sintaxis del método:
/**
* Return an array with all available backups
*
* @return array
*/
public function getBackups ();Ejemplo:
$ backups = DotenvEditor:: getBackups ();Sintaxis del método:
/**
* Return the information of the latest backup file
*
* @return array
*/
public function getLatestBackup ();Ejemplo:
$ latestBackup = DotenvEditor:: getLatestBackup ();Sintaxis del 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 );Ejemplo:
// 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 ' ));Sintaxis del método:
/**
* Delete the given backup file
*
* @param string $filePath
*
* @return DotenvEditor
*/
public function deleteBackup ( $ filePath );Ejemplo:
$ editor = DotenvEditor:: deleteBackup ( storage_path ( ' dotenv-editor/backups/.env.backup_2017_04_10_152709 ' ));Sintaxis del método:
/**
* Delete all or the given backup files
*
* @param array $filePaths
*
* @return DotenvEditor
*/
public function deleteBackups ( $ filePaths = []);Ejemplo:
// 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 ();Sintaxis del método:
/**
* Switching of the auto backup mode
*
* @param boolean $on
*
* @return DotenvEditor
*/
public function autoBackup ( $ on = true );Ejemplo:
// Enable auto backup
$ editor = DotenvEditor:: autoBackup ( true );
// Disable auto backup
$ editor = DotenvEditor:: autoBackup ( false );Algunas funciones de carga, escritura, copia de seguridad, restauración del encadenamiento del método de soporte. Por lo tanto, estas funciones se pueden llamar encadenadas en una sola declaración. Ejemplo:
$ editor = DotenvEditor:: load ( ' .env.example ' )-> backup ()-> setKey ( ' APP_URL ' , ' http://example.com ' )-> save ();
return $ editor -> getKeys ();Ahora, el editor de Dotenv de Laravel tiene 6 comandos que se pueden usar fácilmente con la CLI artesanal. Estos son:
php artisan dotenv:backupphp artisan dotenv:get-backupsphp artisan dotenv:restorephp artisan dotenv:get-keysphp artisan dotenv:set-keyphp artisan dotenv:delete-key Utilice cada uno de los comandos con la opción --help para apoyar más sobre su uso.
Ejemplo:
$ php artisan dotenv:get-backups --helpEste paquete arrojará excepciones si algo sale mal. De esta manera, es más fácil depurar su código usando este paquete o manejar el error en función del tipo de excepciones.
| Excepción | Razón |
|---|---|
| FileNotFoundException | Cuando no se encontró el archivo. |
| InvalidKeyException | Cuando la clave de Setter no es válida. |
| InvalidValueException | Cuando el valor del setter no es válido. |
| KeyNotFoundException | Cuando la clave solicitada no existe en el archivo. |
| NobackupavailableException | Cuando no existe ningún archivo de copia de seguridad. |
| UnableReadFileException | Cuando no puede leer el archivo. |
| Incapaz de escribir | Cuando no puede escribir en el archivo. |
Este proyecto existe gracias a todos sus contribuyentes.
MIT © Jackie do