Laravel Dotenv Editor est l'éditeur de fichiers .env (ou fichiers avec la même structure et la même syntaxe) pour Laravel 5.8+. Vous pouvez maintenant facilement modifier les fichiers .env avec les fonctionnalités suivantes:
Laravel Dotenv Editor est compatible avec Laravel 5.8 et plus tard.
2.x Après la sortie de 1.2.1 , la version 1.x sera interrompue en faveur d'une nouvelle version (version 2.x ) avec certaines modifications à compatible avec la méthode d'analyse du package vlucas/phpdotenv . La version 2.x a beaucoup changé par rapport à la version précédente. Si vous avez utilisé des versions antérieures de ce package, veuillez relire les instructions avec soin.
Regardez l'un des sujets suivants pour en savoir plus sur Laravel Dotenv Editor:
Vous pouvez installer ce package via le compositeur. À la racine de votre répertoire d'application, exécutez la commande suivante (dans n'importe quel client terminal):
$ composer require jackiedo/dotenv-editorPour commencer à utiliser le package, vous devez publier le fichier de configuration afin que vous puissiez configurer le package au besoin. Pour ce faire, exécutez la commande suivante (dans tout client terminal) à la racine de votre application:
$ php artisan vendor:publish --provider= " JackiedoDotenvEditorDotenvEditorServiceProvider " --tag= " config " Cela créera un fichier config/dotenv-editor.php dans votre application que vous pouvez modifier pour définir votre configuration. Assurez-vous également de vérifier les modifications du fichier de configuration d'origine dans ce package entre les versions. Il existe actuellement les paramètres suivants:
Le paramètre autoBackup permet à votre fichier d'origine d'être sauvegardé automatiquement avant d'enregistrer. Réglez-le sur true pour être d'accord.
Le paramètre backupPath est utilisé pour spécifier où votre fichier est sauvegardé. Cette valeur est un sous-chemin (sous-dossier) du dossier racine de l'application de projet.
Le paramètre alwaysCreateBackupFolder est utilisé pour demander que le dossier de sauvegarde soit toujours créé, que la sauvegarde soit effectuée ou non.
Laravel Dotenv Editor a une façade avec le nom JackiedoDotenvEditorFacadesDotenvEditor . Vous pouvez effectuer toutes les opérations à travers cette façade.
Exemple:
<?php namespace Your Namespace ;
// ...
use Jackiedo DotenvEditor Facades DotenvEditor ;
class YourClass
{
public function yourMethod ()
{
$ return = DotenvEditor:: doSomething ();
}
} Ce package prend également en charge l'injection de dépendance. Vous pouvez facilement injecter une instance de la classe JackiedoDotenvEditorDotenvEditor dans votre contrôleur ou d'autres classes.
Exemple:
<?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 ();
}
} Par défaut, l'éditeur Laravel Dotenv chargera le fichier Dotenv que Laravel lit dans votre projet. Autrement dit, si votre Laravel utilise le fichier .env.local pour stocker les valeurs de configuration, l'éditeur Laravel Dotenv charge également le contenu de ce fichier par défaut.
Cependant, si vous souhaitez spécifier explicitement les fichiers avec lesquels vous allez travailler, vous devez utiliser la méthode load() .
Syntaxe de la méthode:
/**
* 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 );Exemple:
// 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 ' )); Remarque: La méthode load() a trois paramètres:
$filePath : le chemin vers le fichier avec lequel vous souhaitez travailler. Définissez null pour travailler avec le fichier .env dans le dossier racine.$restoreIfNotFound : permet de restaurer votre fichier s'il n'est pas trouvé.$restorePath : le chemin vers le fichier utilisé pour restaurer. Définissez null pour restaurer à partir d'un ancien fichier de sauvegarde.Syntaxe de la méthode:
/**
* Get raw content of file
*
* @return string
*/
public function getContent ();Exemple:
$ rawContent = DotenvEditor:: getContent ();Syntaxe de la méthode:
/**
* Get all entries from file
*
* @return array
*/
public function getEntries( bool $ withParsedData = false );Exemple:
$ lines = DotenvEditor:: getEntries ( true );Remarque: Cela renvoie un tableau. Chaque élément du tableau se compose des éléments suivants:
$withParsedData est défini sur true ), y compris: Type d'entrée (vide, commentaire, setter ...), nom de clé de secteur, valeur de setter, commentaire de secteur ... Syntaxe de la méthode:
/**
* Get all or exists given keys in file content
*
* @param array $keys
*
* @return array
*/
public function getKeys ( $ keys = []);Exemple:
// Get all keys
$ keys = DotenvEditor:: getKeys ();
// Only get two given keys if exists
$ keys = DotenvEditor:: getKeys ([ ' APP_DEBUG ' , ' APP_URL ' ]);Remarque: Cela renvoie un tableau. Chaque élément du tableau se compose des éléments suivants:
Syntaxe de la méthode:
/**
* Return information of entry matching to a given key in the file content.
*
* @throws KeyNotFoundException
*
* @return array
*/
public function getKey ( $ key );Exemple:
// Get all keys
$ keys = DotenvEditor:: getKey ( ' EXAMPLE_KEY ' );Syntaxe de la méthode:
/**
* Check, if a given key is exists in the file content
*
* @param string $keys
*
* @return bool
*/
public function keyExists ( $ key );Exemple:
$ keyExists = DotenvEditor:: keyExists ( ' APP_URL ' );Syntaxe de la méthode:
/**
* Return the value matching to a given key in the file content
*
* @param $key
*
* @throws KeyNotFoundException
*
* @return string
*/
public function getValue ( $ key );Exemple:
$ value = DotenvEditor:: getValue ( ' APP_URL ' );Pour modifier le contenu du fichier, vous avez deux travaux:
Gardez toujours à l'esprit que le contenu du tampon et du fichier Dotenv ne sera pas le même que si vous avez enregistré le contenu.
Syntaxe de la méthode:
/**
* Add empty line to buffer
*
* @return DotenvEditor
*/
public function addEmpty ();Exemple:
$ editor = DotenvEditor:: addEmpty ();Syntaxe de la méthode:
/**
* Add comment line to buffer
*
* @param string $comment
*
* @return DotenvEditor
*/
public function addComment( string $ comment );Exemple:
$ editor = DotenvEditor:: addComment ( ' This is a comment line ' );Syntaxe de la méthode:
/**
* 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 );Exemple:
// 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 );Syntaxe de la méthode:
/**
* Set many keys to buffer
*
* @param array $data
*
* @return DotenvEditor
*/
public function setKeys ( $ data );Exemple:
$ 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 ' ,
]
]);Alternativement, vous pouvez également fournir un tableau associatif de clés et de valeurs:
$ editor = DotenvEditor:: setKeys ([
' ENV_KEY_1 ' => ' your-value-1 ' ,
' ENV_KEY_2 ' => ' your-value-2 ' ,
' ENV_KEY_3 ' => ' your-value-3 ' ,
]);Syntaxe de la méthode:
/**
* 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 );Exemple:
$ editor = DotenvEditor:: setSetterComment ( ' ENV_KEY ' , ' new comment ' );Syntaxe de la méthode:
/**
* 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 );Exemple:
$ editor = DotenvEditor:: setExportSetter ( ' ENV_KEY ' , false );Syntaxe de la méthode:
/**
* Delete on key in buffer
*
* @param string $key Key name of setter
*
* @return DotenvEditor
*/
public function deleteKey ( $ key );Exemple:
$ editor = DotenvEditor:: deleteKey ( ' ENV_KEY ' );Syntaxe de la méthode:
/**
* Delete many keys in buffer
*
* @param array $keys
*
* @return DotenvEditor
*/
public function deleteKeys ( $ keys = []);Exemple:
// Delete two keys
$ editor = DotenvEditor:: deleteKeys ([ ' ENV_KEY_1 ' , ' ENV_KEY_2 ' ]);Syntaxe de la méthode:
/**
* Determine if the buffer has changed.
*
* @return bool
*/
public function hasChanged ();Syntaxe de la méthode:
/**
* Save buffer to file.
*
* @param bool $rebuildBuffer Rebuild buffer from content of dotenv file
*
* @return DotenvEditor
*/
public function save( bool $ rebuildBuffer = true );Exemple:
$ editor = DotenvEditor:: save ();Syntaxe de la méthode:
/**
* Create one backup of loaded file
*
* @return DotenvEditor
*/
public function backup ();Exemple:
$ editor = DotenvEditor:: backup ();Syntaxe de la méthode:
/**
* Return an array with all available backups
*
* @return array
*/
public function getBackups ();Exemple:
$ backups = DotenvEditor:: getBackups ();Syntaxe de la méthode:
/**
* Return the information of the latest backup file
*
* @return array
*/
public function getLatestBackup ();Exemple:
$ latestBackup = DotenvEditor:: getLatestBackup ();Syntaxe de la méthode:
/**
* Restore the loaded file from latest backup file or from special file.
*
* @param string|null $filePath
*
* @return DotenvEditor
*/
public function restore ( $ filePath = null );Exemple:
// 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 ' ));Syntaxe de la méthode:
/**
* Delete the given backup file
*
* @param string $filePath
*
* @return DotenvEditor
*/
public function deleteBackup ( $ filePath );Exemple:
$ editor = DotenvEditor:: deleteBackup ( storage_path ( ' dotenv-editor/backups/.env.backup_2017_04_10_152709 ' ));Syntaxe de la méthode:
/**
* Delete all or the given backup files
*
* @param array $filePaths
*
* @return DotenvEditor
*/
public function deleteBackups ( $ filePaths = []);Exemple:
// 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 ();Syntaxe de la méthode:
/**
* Switching of the auto backup mode
*
* @param boolean $on
*
* @return DotenvEditor
*/
public function autoBackup ( $ on = true );Exemple:
// Enable auto backup
$ editor = DotenvEditor:: autoBackup ( true );
// Disable auto backup
$ editor = DotenvEditor:: autoBackup ( false );Certaines fonctions de chargement, d'écriture, de sauvegarde, de restauration du chaînage de méthode de support. Ces fonctions peuvent donc être appelées enchaînées dans une seule instruction. Exemple:
$ editor = DotenvEditor:: load ( ' .env.example ' )-> backup ()-> setKey ( ' APP_URL ' , ' http://example.com ' )-> save ();
return $ editor -> getKeys ();Maintenant, Laravel Dotenv Editor a 6 commandes qui peuvent être utilisées facilement avec l'artisan CLI. Ce sont:
php artisan dotenv:backupphp artisan dotenv:get-backupsphp artisan dotenv:restorephp artisan dotenv:get-keysphp artisan dotenv:set-keyphp artisan dotenv:delete-key Veuillez utiliser chacune des commandes avec l'option --help pour leanr davantage sur leur utilisation.
Exemple:
$ php artisan dotenv:get-backups --helpCe package lancera des exceptions en cas de problème. De cette façon, il est plus facile de déboguer votre code à l'aide de ce package ou de gérer l'erreur en fonction du type d'exceptions.
| Exception | Raison |
|---|---|
| FilenotfoundException | Lorsque le fichier n'a pas été trouvé. |
| InvalidkeyException | Lorsque la clé du secteur n'est pas valide. |
| InvalidvalueException | Lorsque la valeur du secteur n'est pas valide. |
| KeyNotFoundException | Lorsque la clé demandée n'existe pas dans le fichier. |
| NobackupavailableException | Quand aucun fichier de sauvegarde n'existe. |
| UnceleReadFileException | Lorsqu'il est incapable de lire le fichier. |
| Incapable dewriteTofileException | Lorsqu'il est incapable d'écrire dans le fichier. |
Ce projet existe grâce à tous ses contributeurs.
MIT © Jackie Do