Site icon MageComp Blog

How to Create Custom Artisan Command in Laravel 8?

How to Create Custom Artisan Command in Laravel 8

Hello Laravel Developers,

In this Laravel tutorial, we will learn How to Create Custom Artisan Command in Laravel 8? Before that, let’s understand Artisan in Laravel.

What is Artisan in Laravel?

Artisan is a command line interface that is included with Laravel. Artisan provides several helpful commands that can assist you in building your application. To view all available Artisan commands, you may use the list command as follows:

$ php artisan list

This article will show how to create custom artisan commands in Laravel.

Typically commands are stored in the app/console/Commands directory.

Before starting, we need some pre-requirements listed below:

  1. New Laravel project.
  2. A secure database connection.
  3. And User model.

How to Create Custom Artisan Command in Laravel:

Step 1: First, we will create a command using artisan console or cmd. We need to use the make:command Artisan command. This command will create a new command class in the app/console/commands directory.

$ php artisan make:command checkUser

Step 2: After that, define the appropriate values of $signature and $description properties of the class. The handle method will be called when command is executed. You may place your command logic in this method. Let’s take a look at our checkUser command file. 

<?php

namespace App\Console\Commands;

use App\Models\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 = 'This command is used to check whether an email address exists in the database or not.';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {
        $email = $this->argument('email');
        $user = User::where('email', $email)->first();
        if ($user)
        {
            $this->info("User is exist");
        }
        else
        {
            $this->info("User not exist");
        }
        return 0;
    }
}

Let’s test our command in the console

The below output shows if the user exist

The below output shows if the user does not exist

Conclusion:

This way, you can create any of your required custom Artisan command in Laravel 8. If you have any doubt, let me know through the comment section. Get in touch with our Laravel Experts to expand your knowledge in Laravel.

Happy Coding!

Exit mobile version