Laravel - Artisan 控制台

  • 简述

    Laravel 框架提供了三种主要的命令行交互工具,即:Artisan, TickerREPL。本章详细介绍了 Artisan。
  • 工匠简介

    Artisan 是 Laravel 中经常使用的命令行界面,它包含一组用于开发 Web 应用程序的有用命令。
  • 例子

    以下是 Artisan 中的几个命令及其各自的功能的列表 -
    To start Laravel project
    
    php artisan serve
    
    To enable caching mechanism
    
    php artisan route:cache
    
    To view the list of available commands supported by Artisan
    
    php artisan list
    
    To view help about any command and view the available options and arguments
    
    php artisan help serve
    
    以下屏幕截图显示了上面给出的命令的输出 -
    工匠帮助服务
  • 编写命令

    除了 Artisan 中列出的命令之外,用户还可以创建可在 Web 应用程序中使用的自定义命令。请注意,命令存储在app/console/commands directory.
    创建用户定义命令的默认命令如下所示 -
    
    php artisan make:console <name-of-command>
    
    输入上述命令后,您可以看到输出,如下面的屏幕截图所示 -
    默认命令
    创建的文件是为了DefaultCommand被命名为DefaultCommand.php如下所示 -
    
    <?php
    namespace App\Console\Commands;
    use Illuminate\Console\Command;
    class DefaultCommand extends Command{
       /**
          * The name and signature of the console command.
          *
          * @var string
       */
       
       protected $signature = 'command:name';
       
       /**
          * The console command description.
          *
          * @var string
       */
       
       protected $description = 'Command description';
       
       /**
          * Create a new command instance.
          *
          * @return void
       */
       
       public function __construct() {
          parent::__construct();
       }
       
       /**
          * Execute the console command.
          *
          * @return mixed
       */
       
       public function handle() {
          //
       }
    }
    
    该文件包含用户定义的命令的签名和描述。名为的公共函数handle执行命令时执行功能。这些命令被注册在文件中Kernel.php在同一目录中。
    您还可以为用户定义的命令创建任务计划,如以下代码所示 -
    
    <?php
    namespace App\Console;
    use Illuminate\Console\Scheduling\Schedule;
    use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
    class Kernel extends ConsoleKernel {
       /**
          * The Artisan commands provided by your application.
          *
          * @var array
       */
       
       protected $commands = [
          // Commands\Inspire::class,
          Commands\DefaultCommand::class
       ];
       
       /**
          * Define the application's command schedule.
          *
          * @param \Illuminate\Console\Scheduling\Schedule $schedule
          * @return void
       */
       
       protected function schedule(Schedule $schedule) {
          // $schedule->command('inspire')
          // ->hourly();
       }
    }
    
    请注意,给定命令的任务计划是在名为的函数中定义的schedule,其中包括一个用于调度任务的参数,该参数需要hourly范围。
    命令注册在命令数组中,其中包括命令的路径和名称。
    命令注册后,就会在 Artisan 命令中列出。当您调用指定命令的帮助属性时,将显示签名和描述部分中包含的值。
    让我们看看如何查看命令的属性DefaultCommand。您应该使用如下所示的命令 -
    
    php artisan help DefaultCommand