因:项目复杂,创建多个模型每次都写软删除等操作,故使用tp自定义指令避免重复操作

tips :  addArgument和addOptional区别在于 argument的参数是必须写的 php think hello World。此时hello是命令名称world是必传参数。如果是optional,那么命令则为php think hello World -g “hush” 则输出helloworld hush。不写-g和后面的参数直接执行php think hello World也不会报错。

  • 1.php think make:command Hush hush 第一个Hush是文件名称,生成之后位于app\command。第二个hush则是命令名称,是php think hush 的那个hush

  • 2.config/console.php 把生成的类添加进去

  • 3. 命令内容–自己在app目录下创建一个baseModel 内容自定
protected function configure()
    {
        // 指令配置
        $this->setName('hush')
            ->setDescription('继承自定义模型基础类')
            ->addArgument('name', Argument::REQUIRED, 'The name of the model');
    }

    protected function execute(Input $input, Output $output)
    {
        $name = $input->getArgument('name');
        $modelNamespace = 'app\\model';

        // 模型文件路径
        $filePath = $this->app->getRootPath() . "app/model/{$name}.php";

        if (file_exists($filePath)) {
            $output->writeln("<error>Model {$name} already exists!</error>");
            return;
        }

        // 模型类内容
        $modelContent = <<<EOD
<?php

namespace $modelNamespace;

use app\BaseModel;

class $name extends BaseModel
{
    // 写自己的模型基本操作 软删除等
}

EOD;

        // 写入模型文件
        file_put_contents($filePath, $modelContent);

        $output->writeln("<info>Model {$name} created successfully.</info>");

    }