# 命令注册

meedu插件的安装和卸载都是通过命令完成的,所以一款插件的必须要有相应的安装和卸载命令。

我们约定,在插件目录下创建 Commands 目录,并在该目录创建 AppCommand.php 文件,结构如下:

./Commands
└── AppCommand.php

其中,AppCommand.php 文件内容如下:

<?php

namespace Addons\Demo1\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;

class AppCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'Demo1 {action}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '';

    /**
     * AppCommand constructor.
     */
    public function __construct(F)
    {
        parent::__construct();
    }

    public function handle()
    {
        $action = $this->argument('action');
        $method = 'action' . ucfirst($action);
        $this->{$method}();
    }

    protected function actionInstall()
    {
    }

    protected function actionUninstall()
    {
    }

    protected function actionUpgrade()
    {
    }
}

这样,插件的命令就注册成功了,接下来,我们就可通过:

# 插件安装
php artisan Demo1 install
# 插件升级
php artisan Demo1 upgrade
# 插件写在
php artisan Demo1 uninstall

至于插件的安装,升级,卸载的逻辑,我们可以在上面的命令文件中的 actionInstallactionUpgradeactionUninstall 三个方法完成。