{ rpaggi }

.
.

Como incluir o comando key:generate no artisan do Lumen Framework

Esta semana resolvi brincar um pouco com o Lumen para entender na prática suas diferenças em relação ao Laravel.
Logo de inicio seguindo a documentação de como instalar ele ao final dizia para configurar a key da aplicação no arquivo .env, no Laravel temos o comando artisan key:generate, mas no Lumen não, eis que fui atrás desta informação para saber como iria gerar essa key.
Uma forma simples que encontrei foi através do php-cli rodar um str_random(32), copiar o resultado e colocar lá no .env, porém encontrei também uma forma de colocar como comando no artisan, deixando assim parecido com o Laravel, e vou explicar como fazer isso neste post!

Primeiro, você precisa registrar seu comando de key generator, coloque este Lumen Key Generator Command em app/Console/Commands/KeyGenerateCommand.php.
Para deixar este comando disponivel no artisan, altere o arquivo app\Console\Kernel.php como abaixo:

<?php
/**
 * The Artisan commands provided by your application.
 *
 * @var array
 */
protected $commands = [
    'App\Console\Commands\KeyGenerateCommand',
];
...

Depois disso, configure sua aplicação para que a instância Illuminate\Config\Repository tenha o valor de app.key. Para fazer isso altere o arquivo bootstrap/app.php como abaixo:

<?php

require_once __DIR__.'/../vendor/autoload.php';

Dotenv::load(__DIR__.'/../');

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->configure('app');
...

Depois disso, copie seu arquivo .env.example para .env

cp .env.example .env

Ignore este passo se você já usa um arquivo .env.

Agora aproveite seu comando key:generate através de:

php artisan key:generate

Até mais!

Comments