From e21f823fe693459c9cd460c4d06339e998c0229f Mon Sep 17 00:00:00 2001 From: russsiq Date: Sat, 3 Jul 2021 12:48:36 +1000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=B2=D0=BB=D0=B5=D1=87=D0=B5?= =?UTF-8?q?=D1=82=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20`withNewAppKey`=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D1=84=D0=BB=D0=B0=D0=B3=D0=B0=20`$withAppKey`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В проектах необходимо выполнить замену: ``` // Пример строки для замены. EnvManager::newFromPath(base_path('.env.example'), true) // Пример фрагмента кода. EnvManager::newFromPath(base_path('.env.example')) ->withNewAppKey() ``` --- README.md | 13 +++++++++---- src/Contracts/EnvManagerContract.php | 10 ++++++++-- src/Support/EnvManager.php | 13 ++++++++++--- tests/Feature/Support/EnvManagerTest.php | 6 ++++-- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 3159b1a..d2383f6 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ EnvManager::someMethod(example $someParam); - [setMany](#method-setMany) - [save](#method-save) - [newFromPath](#method-newFromPath) + - [withNewAppKey](#method-withNewAppKey) ##### `filePath(): string` @@ -105,6 +106,10 @@ EnvManager::someMethod(example $someParam); ##### `newFromPath(string $filePath, bool $withAppKey = false): self` Создать файл окружения путем копирования содержимого файла по указанному полному пути. Полная перезагрузка переменных окружения. Если параметр `$withAppKey` указан как `true`, то будет сгенерирован новый ключ приложения `APP_KEY`. + +##### `withNewAppKey(): self` +Создать новый ключ приложения. + #### Пример использования ```php @@ -113,9 +118,10 @@ use Russsiq\EnvManager\Facades\EnvManager; // Если файл не существует. if (! EnvManager::fileExists()) { - // Создаем новый файл из образца, - // попутно генерируя ключ для приложения. - EnvManager::newFromPath(base_path('.env.example'), true) + // Создаем новый файл из образца. + EnvManager::newFromPath(base_path('.env.example')) + // Попутно генерируем ключ для приложения. + ->withNewAppKey() // Устанавливаем необходимые значения. ->setMany([ 'APP_NAME' => 'Example site', @@ -126,7 +132,6 @@ if (! EnvManager::fileExists()) { ]) // Сохраняем новый файл в корне как `.env`. ->save(); - } // Распечатаем для примера diff --git a/src/Contracts/EnvManagerContract.php b/src/Contracts/EnvManagerContract.php index 52d6d3d..f9d4701 100644 --- a/src/Contracts/EnvManagerContract.php +++ b/src/Contracts/EnvManagerContract.php @@ -108,11 +108,17 @@ public function save(): bool; * содержимого файла по указанному полному пути. * * @param string $filePath Полный путь к исходному файлу. - * @param bool $withAppKey Создать новый ключ приложения. * * @return self * * @NB Полная перезагрузка переменных окружения. */ - public function newFromPath(string $filePath, bool $withAppKey = false): self; + public function newFromPath(string $filePath): self; + + /** + * Создать новый ключ приложения. + * + * @return self + */ + public function withNewAppKey(): self; } diff --git a/src/Support/EnvManager.php b/src/Support/EnvManager.php index 416f471..b2bc5eb 100644 --- a/src/Support/EnvManager.php +++ b/src/Support/EnvManager.php @@ -198,18 +198,25 @@ public function save(): bool * содержимого файла по указанному полному пути. * * @param string $filePath Полный путь к исходному файлу. - * @param bool $withAppKey Создать новый ключ приложения. * * @return self * * @NB Полная перезагрузка переменных окружения. */ - public function newFromPath(string $filePath, bool $withAppKey = false): EnvManagerContract + public function newFromPath(string $filePath): EnvManagerContract { $this->variables = $this->setFilePath($filePath) ->loadVariables(); - return $withAppKey ? $this->set('APP_KEY', $this->generateRandomKey()) : $this; + return $this; + } + + /** + * @inheritDoc + */ + public function withNewAppKey(): EnvManagerContract + { + return $this->set('APP_KEY', $this->generateRandomKey()); } /** diff --git a/tests/Feature/Support/EnvManagerTest.php b/tests/Feature/Support/EnvManagerTest.php index 5b457d1..3879fa8 100644 --- a/tests/Feature/Support/EnvManagerTest.php +++ b/tests/Feature/Support/EnvManagerTest.php @@ -369,7 +369,7 @@ public function testNewFromPath(): void /** * @test - * @covers ::newFromPath + * @covers ::withNewAppKey * * [testNewFromPathWithAppKey description] * @@ -387,8 +387,10 @@ public function testNewFromPathWithAppKey(): void $this->manager = new EnvManager($this->environmentFilePath, $this->cipher); $this->assertInstanceOf(EnvManagerContract::class, $this->manager); $this->assertNull($this->manager->get('APP_NAME')); + $this->assertNull($this->manager->get('APP_KEY')); - $this->manager->newFromPath($filePath, true); + $this->manager->newFromPath($filePath) + ->withNewAppKey(); $this->assertSame('Example', $this->manager->get('APP_NAME')); $this->assertNotNull($this->manager->get('APP_KEY'));