Laravel has its own command-line interface named Artisan. It has a list of useful commands. You’ll need to use artisan commands when building an application.

You may get into situations when you’ll have no access to SSH. In such situations, you might want to execute artisan commands programmatically from a router or controller.

Laravel provides a facade class for the Artisan, which has a call() method that we can use to execute artisan commands, the signature name or class name of the command as the first argument, and the second argument is an array of command parameters. Alternatively, we can just pass the complete artisan command as a string. For example – We gonna run posts table seeder using artisan command programmatically this way –

 

Route::get('artisan-seed', function() { 
    Artisan::call(
        'db:seed ',
        array(
            '--class' => 'PostTableSeeder'
        )
    ); 
    // Alternatively
    Artisan::call('db:seed --class=PostTableSeeder'); 
});