Laravel进阶系列笔记--(十二)Laravel 简单的artisan控制台的使用

作者: 温新

分类: 【Laravel】

阅读: 1803

时间: 2021-08-24 14:59:41

作者:温新

时间:2021-07-10

hi,我是温新,一名PHPer。

当写完会,应该会发现,怎么这么熟悉。没错,在定时任务中使用过,也就是自定义artisan命令。Laravel提供了许多内置的artisan命令,来看看这些自定义的artisan命令吧。

内置artisan命令

查看所有artisan命令

php artisan list
php artisan

内置命令

  • help 查看指定命令的帮助信息,如php artisan help make:migrate
  • down 将应用切换到维护模式
  • up 将应用从维护模式恢复到正常模式
  • env 查看当前应用的运行环境
  • migrate 执行所有数据库迁移
  • serve 启动PHP内置服务器

编写自定义artisan命令

第一步:创建自定义命令类

方法:make:command

php artisan make:command DemoCommand --command=demo:msg

该命令创建一个自定义的artisan命令类,--command=demo:msg指定自定义命令的名称。

该命令会app/Console/Commands目录下创建一个DemoCommand.php文件,内容如下:

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;

class DemoCommand extends Command
{
    // 命令名称
    protected $signature = 'demo:msg';

    protected $description = 'Command description';

    public function __construct()
    {
        parent::__construct();
    }
    
    public function handle()
    {
        return 0;
    }
}

第二步:编写代码

文件:app/Console/Commands/DemoCommand.php

use Illuminate\Support\Facades\Log;   
public function handle()
{
    Log::info('自如初个人博客,使用自定义artisan命令');
}

第三步:注册自定义artsian命令

文件:app/Console/Kernel.php

use App\Console\Commands\DemoCommand;
protected $commands = [
    DemoCommand::class,
];

第四步:执行自定义命令

php artisan demo:msg

基于闭包的自定义artisan命令

基于闭包的artisan命令定义在reoutes/console.php文件中,当然了可以定义在web.php,也可以定义在某个服务提供中者中,这里我就定义在console.php文件中。

第一步:定义闭包artisan命令

文件:routes/console.php

Artisan::command('demo:msg1',function(){
    $this->info('基于闭包的artisan命令');
})->describe('我是描述内容');

第一个参数:自定义的artisan命令;

第二个参数,闭包函数

第二步:执行自定义artisan命令

php artisan demo;msg1

这就是自定义artsian命令的简单用法。

我是温新

每天进步一点点,就一点点

请登录后再评论