Como criar um Comando Artisan personalizado no Laravel
Passo 1
Primeiramente, vamos criar o comando usando o console Artisan ou o terminal.
Para isso, utilize o comando make:command
do Artisan. Este comando criará uma nova classe de comando no diretório app/Console/Commands
.
php artisan make:command checkUser
Passo 2:
Em seguida, defina os valores apropriados para as propriedades $signature
e $description
da classe.
O método handle
será chamado quando o comando for executado. Você pode inserir a lógica do seu comando dentro deste método. Vamos dar uma olhada no arquivo do comando checkUser
.
<?php
namespace App\Console\Commands;
use App\User;
use Illuminate\Console\Command;
class checkUser extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'check:user {email}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Este comando é usado para verificar se existe ou não um endereço de e-mail no banco de dados.';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
*/
public function handle()
{
$email = $this->argument('email');
$user = User::where('email', $email)->first();
if ($user) {
$this->info("Usuário encontrado: {$user->name}");
} else {
$this->warn("Usuário não encontrado.");
}
return Command::SUCCESS;
}
}
Vamos testar nosso comando no console
A saída abaixo indica que o usuário existe:
Usuário encontrado: NOME
A saída abaixo indica que o usuário não existe:
Usuário não encontrado.
Conclusão:
Dessa forma, você pode criar qualquer comando Artisan personalizado necessário no Laravel 8.
Se tiver alguma dúvida, fique à vontade para me avisar na seção de comentários.
Subscribe to my newsletter
Read articles from Fernando Bezerra directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Fernando Bezerra
Fernando Bezerra
Sou Full Stack e escritor amador entusiasmado por desenvolvimento de software. Compartilho meu entusiasmo pela tecnologia e complexidades do desenvolvimento através da escrita.