In kohana framework I can call controller via command line using
php5 index.php --uri=controller/method/var1/var2
Is it possible to call controller I want in Laravel 5 via cli? If yes, how to do this?
use App\Http\Controllers\UserController; Route::get('/user/{id}', [UserController::class, 'show']); When an incoming request matches the specified route URI, the show method on the App\Http\Controllers\UserController class will be invoked and the route parameters will be passed to the method.
Simply add a new command like $schedule->command('command:name')->hourly(); inside schedule function.
There is no way so far (not sure if there will ever be). However you can create your own Artisan Command that can do that. Create a command CallRoute
using this:
php artisan make:console CallRoute
For Laravel 5.3 or greater you need to use make:command
instead:
php artisan make:command CallRoute
This will generate a command class in app/Console/Commands/CallRoute.php
. The contents of that class should look like this:
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Symfony\Component\Console\Input\InputOption; use Illuminate\Http\Request; class CallRoute extends Command { protected $name = 'route:call'; protected $description = 'Call route from CLI'; public function __construct() { parent::__construct(); } public function fire() { $request = Request::create($this->option('uri'), 'GET'); $this->info(app()['Illuminate\Contracts\Http\Kernel']->handle($request)); } protected function getOptions() { return [ ['uri', null, InputOption::VALUE_REQUIRED, 'The path of the route to be called', null], ]; } }
You then need to register the command by adding it to the $commands
array in app/Console/Kernel.php
:
protected $commands = [ ..., 'App\Console\Commands\CallRoute', ];
You can now call any route by using this command:
php artisan route:call --uri=/route/path/with/param
Mind you, this command will return a response as it would be sent to the browser, that means it includes the HTTP headers at the top of the output.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With