thinkphp 创建自定义命令行

Posted 哈尔滨洛弘科技有限公司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 创建自定义命令行相关的知识,希望对你有一定的参考价值。

1,以为下方图片为例,在api模块下创建了一个command目录,然后创建自己所需要的命令行执行文件
我的执行文件未Online.php

以下为代码实例

<?php


namespace app\\api\\command;


use think\\console\\Input;
use think\\console\\input\\Argument;
use think\\console\\Output;
use think\\console\\Command;


/**
 * @package app\\api\\command
 */
class Online extends Command

    /**
     * 配置指令
     */
    protected function configure()
    
        $this->addArgument('task_id', Argument::OPTIONAL);
        $this->addArgument('sex', Argument::OPTIONAL);
        //此处为获取执行命令的参数,并且定义参数key
        $this->setName('online:member')->setDescription('online member');
    
    protected function execute(Input $input, Output $output)
    
        $args = $input->getArguments();
      	$task_id=$args['task_id'];
        $sex=$args['sex'];
    

代码解读
此处需要继承thinkphp的command类,才能让你的执行文件加载
configure 为配置方法
$this->addArgument(‘task_id’, Argument::OPTIONAL);为获取命令中的参数
比如 php think online:member 1 2
那么第一个 task_id=1
第二个 task_id=2
execute 执行方法
$args = $input->getArguments(); 获取定义的参数

然后在application/你的模块目录下创建command.php

直接 return你的命名空间即可使用了

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: yunwuxin <448901948@qq.com>
// +----------------------------------------------------------------------



return ['app\\api\\command\\Online'];

那么就让我们来一起试一试吧

以上是关于thinkphp 创建自定义命令行的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp 创建自定义命令行

thinkphp 创建自定义命令行

thinkphp 自动生成模块目录结构

thinkphp5 内置接口开发与使用

thinkphp命令行生成模型类

使用 azure 命令行工具根据自定义日志创建警报