Der Laravel Dotenv -Editor ist der .Env -Datei -Editor (oder Dateien mit derselben Struktur und Syntax) für Laravel 5.8+. Jetzt können Sie .EnV -Dateien mit den folgenden Funktionen problemlos bearbeiten:
Der Laravel Dotenv -Editor ist mit Laravel 5.8 und später kompatibel.
2.x Nach der Veröffentlichung von 1.2.1 wird Version 1.x zugunsten einer neuen Version (Version 2.x ) eingestellt, wobei einige Änderungen mit der Parsing -Methode des vlucas/phpdotenv -Pakets kompatibel sind. Version 2.x hat sich im Vergleich zur vorherigen Version ziemlich verändert. Wenn Sie frühere Versionen dieses Pakets verwendet haben, lesen Sie die Anweisungen sorgfältig erneut.
Sehen Sie sich eines der folgenden Themen an, um mehr über den Laravel Dotenv -Editor zu erfahren:
Sie können dieses Paket über Komponist installieren. Führen Sie am Root Ihres Anwendungsverzeichnisses den folgenden Befehl aus (in jedem Terminal -Client):
$ composer require jackiedo/dotenv-editorUm das Paket zu verwenden, sollten Sie die Konfigurationsdatei veröffentlichen, damit Sie das Paket nach Bedarf konfigurieren können. Führen Sie dazu den folgenden Befehl (in jedem Terminal -Client) zum Stamm Ihrer Anwendung aus:
$ php artisan vendor:publish --provider= " JackiedoDotenvEditorDotenvEditorServiceProvider " --tag= " config " Dadurch wird eine config/dotenv-editor.php Datei in Ihrer App erstellt, die Sie ändern können, um Ihre Konfiguration festzulegen. Stellen Sie außerdem sicher, dass Sie nach Änderungen an der ursprünglichen Konfigurationsdatei in diesem Paket zwischen den Veröffentlichungen suchen. Derzeit gibt es die folgenden Einstellungen:
Mit der autoBackup -Einstellung kann Ihre Originaldatei vor dem Speichern automatisch gesichert werden. Stellen Sie es auf true , um zuzustimmen.
Die backupPath -Einstellung wird verwendet, um anzugeben, wo Ihre Datei gesichert ist. Dieser Wert ist ein Subpfad (Unterordner) aus dem Stammordner der Projektanwendung.
Mit der Einstellung alwaysCreateBackupFolder werden die Sicherungsordner immer erstellt, unabhängig davon, ob die Sicherung durchgeführt wird oder nicht.
Laravel Dotenv Editor hat eine Fassade mit dem Namen JackiedoDotenvEditorFacadesDotenvEditor . Sie können alle Operationen über diese Fassade ausführen.
Beispiel:
<?php namespace Your Namespace ;
// ...
use Jackiedo DotenvEditor Facades DotenvEditor ;
class YourClass
{
public function yourMethod ()
{
$ return = DotenvEditor:: doSomething ();
}
} Dieses Paket unterstützt auch die Abhängigkeitsinjektion. Sie können leicht eine Instanz des JackiedoDotenvEditorDotenvEditor -Klasse in Ihren Controller oder andere Klassen injizieren.
Beispiel:
<?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 ();
}
} Standardmäßig lädt der Laravel Dotenv -Editor die DOTENV -Datei, aus der Laravel in Ihrem Projekt liest. Wenn Ihr Laravel die .env.local -Datei verwendet, um die Konfigurationswerte zu speichern, lädt der Laravel -Dotenv -Editor den Inhalt standardmäßig aus dieser Datei.
Wenn Sie jedoch die Dateien, mit denen Sie arbeiten, explizit angeben möchten, sollten Sie die Methode load() verwenden.
Methodensyntax:
/**
* 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 );Beispiel:
// 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 ' )); Hinweis: Die Methode load() enthält drei Parameter:
$filePath : Der Pfad zur Datei, mit der Sie arbeiten möchten. Legen Sie null so ein, dass sie mit der Datei .env im Stammordner arbeiten.$restoreIfNotFound : Ermöglicht die Wiederherstellung Ihrer Datei, wenn sie nicht gefunden wird.$restorePath : Der Pfad zur Wiederherstellung der Datei. Stellen Sie null so ein, dass sie von einer älteren Sicherungsdatei wiederhergestellt werden.Methodensyntax:
/**
* Get raw content of file
*
* @return string
*/
public function getContent ();Beispiel:
$ rawContent = DotenvEditor:: getContent ();Methodensyntax:
/**
* Get all entries from file
*
* @return array
*/
public function getEntries( bool $ withParsedData = false );Beispiel:
$ lines = DotenvEditor:: getEntries ( true );Hinweis: Dies gibt ein Array zurück. Jedes Element im Array besteht aus den folgenden Elementen:
$withParsedData auf true eingestellt ist), einschließlich: Art des Eintrags (leer, Kommentar, Setter ...), Schlüsselname des Setters, Wert von Setter, Kommentar von Setter ... Methodensyntax:
/**
* Get all or exists given keys in file content
*
* @param array $keys
*
* @return array
*/
public function getKeys ( $ keys = []);Beispiel:
// Get all keys
$ keys = DotenvEditor:: getKeys ();
// Only get two given keys if exists
$ keys = DotenvEditor:: getKeys ([ ' APP_DEBUG ' , ' APP_URL ' ]);Hinweis: Dies gibt ein Array zurück. Jedes Element im Array besteht aus den folgenden Elementen:
Methodensyntax:
/**
* Return information of entry matching to a given key in the file content.
*
* @throws KeyNotFoundException
*
* @return array
*/
public function getKey ( $ key );Beispiel:
// Get all keys
$ keys = DotenvEditor:: getKey ( ' EXAMPLE_KEY ' );Methodensyntax:
/**
* Check, if a given key is exists in the file content
*
* @param string $keys
*
* @return bool
*/
public function keyExists ( $ key );Beispiel:
$ keyExists = DotenvEditor:: keyExists ( ' APP_URL ' );Methodensyntax:
/**
* Return the value matching to a given key in the file content
*
* @param $key
*
* @throws KeyNotFoundException
*
* @return string
*/
public function getValue ( $ key );Beispiel:
$ value = DotenvEditor:: getValue ( ' APP_URL ' );Um Dateiinhalte zu bearbeiten, haben Sie zwei Jobs:
Denken Sie immer daran, dass der Inhalt des Puffers und der Dotenv -Datei nicht gleich ist, es sei denn, Sie haben den Inhalt gespeichert.
Methodensyntax:
/**
* Add empty line to buffer
*
* @return DotenvEditor
*/
public function addEmpty ();Beispiel:
$ editor = DotenvEditor:: addEmpty ();Methodensyntax:
/**
* Add comment line to buffer
*
* @param string $comment
*
* @return DotenvEditor
*/
public function addComment( string $ comment );Beispiel:
$ editor = DotenvEditor:: addComment ( ' This is a comment line ' );Methodensyntax:
/**
* 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 );Beispiel:
// 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 );Methodensyntax:
/**
* Set many keys to buffer
*
* @param array $data
*
* @return DotenvEditor
*/
public function setKeys ( $ data );Beispiel:
$ 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 ' ,
]
]);Alternativ können Sie auch eine assoziative Reihe von Schlüssel und Werten bereitstellen:
$ editor = DotenvEditor:: setKeys ([
' ENV_KEY_1 ' => ' your-value-1 ' ,
' ENV_KEY_2 ' => ' your-value-2 ' ,
' ENV_KEY_3 ' => ' your-value-3 ' ,
]);Methodensyntax:
/**
* 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 );Beispiel:
$ editor = DotenvEditor:: setSetterComment ( ' ENV_KEY ' , ' new comment ' );Methodensyntax:
/**
* 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 );Beispiel:
$ editor = DotenvEditor:: setExportSetter ( ' ENV_KEY ' , false );Methodensyntax:
/**
* Delete on key in buffer
*
* @param string $key Key name of setter
*
* @return DotenvEditor
*/
public function deleteKey ( $ key );Beispiel:
$ editor = DotenvEditor:: deleteKey ( ' ENV_KEY ' );Methodensyntax:
/**
* Delete many keys in buffer
*
* @param array $keys
*
* @return DotenvEditor
*/
public function deleteKeys ( $ keys = []);Beispiel:
// Delete two keys
$ editor = DotenvEditor:: deleteKeys ([ ' ENV_KEY_1 ' , ' ENV_KEY_2 ' ]);Methodensyntax:
/**
* Determine if the buffer has changed.
*
* @return bool
*/
public function hasChanged ();Methodensyntax:
/**
* Save buffer to file.
*
* @param bool $rebuildBuffer Rebuild buffer from content of dotenv file
*
* @return DotenvEditor
*/
public function save( bool $ rebuildBuffer = true );Beispiel:
$ editor = DotenvEditor:: save ();Methodensyntax:
/**
* Create one backup of loaded file
*
* @return DotenvEditor
*/
public function backup ();Beispiel:
$ editor = DotenvEditor:: backup ();Methodensyntax:
/**
* Return an array with all available backups
*
* @return array
*/
public function getBackups ();Beispiel:
$ backups = DotenvEditor:: getBackups ();Methodensyntax:
/**
* Return the information of the latest backup file
*
* @return array
*/
public function getLatestBackup ();Beispiel:
$ latestBackup = DotenvEditor:: getLatestBackup ();Methodensyntax:
/**
* Restore the loaded file from latest backup file or from special file.
*
* @param string|null $filePath
*
* @return DotenvEditor
*/
public function restore ( $ filePath = null );Beispiel:
// 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 ' ));Methodensyntax:
/**
* Delete the given backup file
*
* @param string $filePath
*
* @return DotenvEditor
*/
public function deleteBackup ( $ filePath );Beispiel:
$ editor = DotenvEditor:: deleteBackup ( storage_path ( ' dotenv-editor/backups/.env.backup_2017_04_10_152709 ' ));Methodensyntax:
/**
* Delete all or the given backup files
*
* @param array $filePaths
*
* @return DotenvEditor
*/
public function deleteBackups ( $ filePaths = []);Beispiel:
// 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 ();Methodensyntax:
/**
* Switching of the auto backup mode
*
* @param boolean $on
*
* @return DotenvEditor
*/
public function autoBackup ( $ on = true );Beispiel:
// Enable auto backup
$ editor = DotenvEditor:: autoBackup ( true );
// Disable auto backup
$ editor = DotenvEditor:: autoBackup ( false );Einige Funktionen des Ladens, Schreibens, Sicherns, Wiederherstellen der Unterstützungsmethodenverkettung. Diese Funktionen können also in einer einzigen Aussage miteinander gekettet bezeichnet werden. Beispiel:
$ editor = DotenvEditor:: load ( ' .env.example ' )-> backup ()-> setKey ( ' APP_URL ' , ' http://example.com ' )-> save ();
return $ editor -> getKeys ();Jetzt hat Laravel Dotenv Editor 6 Befehle, die leicht mit der Artisan CLI verwendet werden können. Diese sind:
php artisan dotenv:backupphp artisan dotenv:get-backupsphp artisan dotenv:restorephp artisan dotenv:get-keysphp artisan dotenv:set-keyphp artisan dotenv:delete-key Bitte verwenden Sie jede der Befehle mit der Option --help , um mehr über die Nutzung zu lehnen.
Beispiel:
$ php artisan dotenv:get-backups --helpDieses Paket wirft Ausnahmen aus, wenn etwas schief geht. Auf diese Weise ist es einfacher, Ihren Code mit diesem Paket zu debuggen oder den Fehler basierend auf der Art der Ausnahmen zu verarbeiten.
| Ausnahme | Grund |
|---|---|
| FilenotfoundException | Wenn die Datei nicht gefunden wurde. |
| InvalyKeyException | Wenn der Schlüssel des Setters ungültig ist. |
| InvalyValueException | Wenn der Wert von Setter ungültig ist. |
| KeynotFoundException | Wenn der angeforderte Schlüssel in der Datei nicht vorhanden ist. |
| NobackupavailableException | Wenn keine Sicherungsdatei vorliegt. |
| UnablereadFileException | Wenn Sie die Datei nicht lesen können. |
| Falls writetofileException | Wenn Sie nicht in die Datei schreiben können. |
Dieses Projekt besteht dank aller Mitwirkenden.
Mit © Jackie tun