Skip to content

Commit

Permalink
Извлечет метод withNewAppKey для удаления флага $withAppKey
Browse files Browse the repository at this point in the history
В проектах необходимо выполнить замену:

```
// Пример строки для замены.
EnvManager::newFromPath(base_path('.env.example'), true)

// Пример фрагмента кода.
EnvManager::newFromPath(base_path('.env.example'))
    ->withNewAppKey()
```
  • Loading branch information
russsiq committed Jul 3, 2021
1 parent 766e342 commit e21f823
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 11 deletions.
13 changes: 9 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ EnvManager::someMethod(example $someParam);
- [setMany](#method-setMany)
- [save](#method-save)
- [newFromPath](#method-newFromPath)
- [withNewAppKey](#method-withNewAppKey)

<a name="method-filePath"></a>
##### `filePath(): string`
Expand Down Expand Up @@ -105,6 +106,10 @@ EnvManager::someMethod(example $someParam);
##### `newFromPath(string $filePath, bool $withAppKey = false): self`
Создать файл окружения путем копирования содержимого файла по указанному полному пути. Полная перезагрузка переменных окружения. Если параметр `$withAppKey` указан как `true`, то будет сгенерирован новый ключ приложения `APP_KEY`.

<a name="method-withNewAppKey"></a>
##### `withNewAppKey(): self`
Создать новый ключ приложения.

#### Пример использования

```php
Expand All @@ -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',
Expand All @@ -126,7 +132,6 @@ if (! EnvManager::fileExists()) {
])
// Сохраняем новый файл в корне как `.env`.
->save();

}

// Распечатаем для примера
Expand Down
10 changes: 8 additions & 2 deletions src/Contracts/EnvManagerContract.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
13 changes: 10 additions & 3 deletions src/Support/EnvManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -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());
}

/**
Expand Down
6 changes: 4 additions & 2 deletions tests/Feature/Support/EnvManagerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ public function testNewFromPath(): void

/**
* @test
* @covers ::newFromPath
* @covers ::withNewAppKey
*
* [testNewFromPathWithAppKey description]
*
Expand All @@ -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'));
Expand Down

0 comments on commit e21f823

Please sign in to comment.