Skip to main content
Version: 9.x

Commands

Definition#

Commands:

  • is a laravel artisan command. Laravel has its own default commands, and you create your own as well.
  • provides a way to interact with the Laravel app.
  • a Command can be scheduled by a Task scheduler, like Cron Job or by the Laravel built-in wrapper of the Cron Job "laravel scheduler".
  • Commands could be Closure based or Classes.
  • "dispatch" is the term that is usually used to call a Command.

Principles#

  • Containers MAY or MAY NOT have one or more Commands.

  • Every Command SHOULD call an Action to perform its job, and should not container any business logic.

  • Ship may contain Application general Commands.

Rules#

  • All Commands MUST extend from App\Ship\Parents\Commands\ConsoleCommand.

Folder Structure#

 - app    - Containers        - {container-name}            - UI                - CLI                    - Commands                        - SayHelloCommand.php                        - ...    - Ship        - Commands            - GeneralCommand.php            - ...

Code Samples#

Example: a simple Command

<?php
namespace App\Containers\Welcome\UI\CLI\Commands;
use App\Ship\Parents\Commands\ConsoleCommand;
/** * Class SayWelcomeCommand * * @author  Mahmoud Zalt  <[email protected]> */class SayWelcomeCommand extends ConsoleCommand{
    /**     * The name and signature of the console command.     *     * @var string     */    protected $signature = 'apiato:welcome';
    /**     * The console command description.     *     * @var string     */    protected $description = 'Just saying Welcome.';
    /**     * Create a new command instance.     *     * @return void     */    public function __construct()    {        parent::__construct();    }
    /**     * Execute the console command.     *     * @return void     */    public function handle()    {        $this->info('Welcome to apiato :)'); // green color        // $this->line('Welcome to apiato :)'); // normal color    }}

Usage from CLI (Terminal):

php artisan apiato:welcome

Schedule Commands Execution#

To Schedule the execution of a Command checkout the Tasks Scheduling page.

Define Consoles Routes#

To define Console route go to app/Ship/Commands/Routes.php.