If you have simple job to do you can do it from route file.
For example you want to clear cache. In terminal it would be php artisan
cache:clear In route file that would be:
Artisan::call('cache:clear');
// call artisan command
Artisan::call("syncdb:sales-item");
/*
|=======================================================
| Run Artisan commands in laravel controllers
|=======================================================
*/
public function home()
{
Artisan::call('cache:clear');
echo "Cache Cleared <br>";
Artisan::call('config:cache');
echo "config cache are cleared <br>";
Artisan::call('route:cache');
echo "routes cache are cleared <br>";
Artisan::call('optimize:clear');
echo "optimized cleared <br>";
Artisan::call('storage:link');
echo "storage linked <br>";
}
<?php
Route::get('/foo', function () {
Artisan::queue('email:send', [
'user' => 1, '--queue' => 'default'
]);
//
});
<?php
namespace AppConsoleCommands;
use IlluminateConsoleCommand;
use AppHttpControllersHelloWorldController;
class MakeImportsCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'helloworld';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Say Hello World Controller';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
return $this -> helloWorld();
}
}