Laravel - Artisan 控制台



Laravel 框架提供了三种主要通过命令行进行交互的工具:Artisan、TickerREPL。本章详细介绍 Artisan。

Artisan 简介

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

示例

以下是 Artisan 中的一些命令及其相应的功能:

启动 Laravel 项目

php artisan serve

启用缓存机制

php artisan route:cache

查看 Artisan 支持的所有可用命令列表

php artisan list

查看任何命令的帮助信息,并查看可用的选项和参数

php artisan help serve

以下屏幕截图显示了上述命令的输出:

Artisan Help Serve

编写命令

除了 Artisan 中列出的命令之外,用户还可以创建自定义命令,这些命令可以在 Web 应用程序中使用。请注意,命令存储在app/console/commands 目录中。

创建用户定义命令的默认命令如下所示:

php artisan make:console <name-of-command>

键入上述命令后,您会看到如下屏幕截图所示的输出:

defaultCommand

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
广告