ThinkPHP自定义指令

简介: ThinkPHP自定义指令

官网文档

https://www.kancloud.cn/manual/thinkphp6_0/1037651

创建命令类文件

运行指令创建一个自定义命令类文件

php think make:command Hello hello

生成内容如下

<?php
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output;
class Hello extends Command
{
    protected function configure()
    {
        $this->setName('hello')
          ->addArgument('name', Argument::OPTIONAL, "your name")
            ->addOption('city', null, Option::VALUE_REQUIRED, 'city name')
          ->setDescription('Say Hello');
    }
    protected function execute(Input $input, Output $output)
    {
      $name = trim($input->getArgument('name'));
        $name = $name ?: 'thinkphp';
    if ($input->hasOption('city')) {
          $city = PHP_EOL . 'From ' . $input->getOption('city');
        } else {
          $city = '';
        }
        
        $output->writeln("Hello," . $name . '!' . $city);
    }
}

配置config/console.php文件

<?php
return [
    'commands' => [
        'hello' => 'app\command\Hello',
    ]
];

使用命令执行指令

php think hello

在宝塔面板中配置计划任务

常用指令文件

创建表

<?php
declare (strict_types = 1);
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use think\Exception;
use think\facade\Db;
class CreateTable extends Command
{
    protected function configure()
    {
        // 指令配置
        $this->setName('start')
            ->setDescription('每日创建日志数据表');
    }
    //创建表
    protected function execute(Input $input, Output $output)
    {
        $tableList = [
            'device_log'
        ];
        foreach ($tableList as $tblpre) {
            // 检查今天的表
            $tbldate = date('ymd');
            $res = Db::execute("show tables like '{$tblpre}{$tbldate}'");
            if ($res === 0) {
                $output->writeln('补建今天的表'.$tbldate);
                Db::execute("create table {$tblpre}{$tbldate} like {$tblpre}");
            }
            //创建明天的表
            try {
                $tblnextdate = date('ymd', strtotime('+1 day'));
                $res = Db::execute("show tables like '{$tblpre}{$tblnextdate}'");
                if ($res === 0) {
                    Db::execute("create table {$tblpre}{$tblnextdate} like {$tblpre}");
                    $output->writeln('创建明天的表'.$tblnextdate);
                }
            } catch (Exception $exception) {
                echo $exception->getMessage();
            }
        }
    }
}
相关文章
PHP:guzzlehttp/guzzle发送同步和异步网络请求
PHP:guzzlehttp/guzzle发送同步和异步网络请求
1230 0
|
缓存 安全 PHP
【阿里云镜像】配置阿里云 Composer 全量镜像
【阿里云镜像】配置阿里云 Composer 全量镜像
3237 0
【阿里云镜像】配置阿里云 Composer 全量镜像
|
分布式计算 Hadoop 分布式数据库
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
1236 2
|
数据可视化 测试技术 API
ShowDoc部署与应用:文档管理的最佳实践
在项目开发和协作中,文档管理扮演着至关重要的角色。ShowDoc作为一款卓越的开源文档管理工具,不仅提供强大的文档管理功能,还具备简单易用的协作和部署特性。我们的项目团队最初选择了ShowDoc作为文档管理工具,用以促进前后端协作。
1838 2
ShowDoc部署与应用:文档管理的最佳实践
|
中间件 Linux PHP
【ThinkPHP框架教程·Part-01】ThinkPHP6.x框架安装教程
ThinkPHP6.0 是一款免费开源、轻量级且快速的 PHP 框架,适用于 PHP 7.2.5+ 环境。本教程采用稳定版 TP6.0,支持多应用、强类型、PSR 规范等新特性。安装步骤包括:1) 安装 Composer;2) 切换国内镜像加速下载;3) 使用 `composer create-project topthink/think tp6` 安装稳定版;4) 运行 `php think run` 测试。详情及更多内容请参考 [官方手册](https://www.kancloud.cn/manual/thinkphp6_0/1037479)。
2022 1
【ThinkPHP框架教程·Part-01】ThinkPHP6.x框架安装教程
|
缓存 自然语言处理 数据挖掘
一篇文章让你学会Elasticsearch中的查询
一篇文章让你学会Elasticsearch中的查询
137916 118
|
JavaScript 容器
vue-element-admin 综合开发二:搭建首页架子、侧边栏、修改默认样式、menu和路由跳转页面初体验
这篇文章详细介绍了如何使用Vue和Element UI搭建一个后台管理系统,包括首页布局、侧边栏、样式调整、菜单和路由配置,以及解决开发中遇到的问题。
1940 1
vue-element-admin 综合开发二:搭建首页架子、侧边栏、修改默认样式、menu和路由跳转页面初体验
|
存储 中间件 API
ThinkPHP 集成 jwt 技术 token 验证
本文介绍了在ThinkPHP框架中集成JWT技术进行token验证的流程,包括安装JWT扩展、创建Token服务类、编写中间件进行Token校验、配置路由中间件以及测试Token验证的步骤和代码示例。
ThinkPHP 集成 jwt 技术 token 验证
|
Ubuntu Shell
【Ubuntu系统】三步更新自己的Cmake最新版本
Ubuntu系统中通过三步简单流程更新Cmake到最新版本的具体操作方法,包括卸载旧版本、下载并运行安装脚本以及创建软链接。
4768 1
|
资源调度 JavaScript 前端开发
vue-element-admin 综合开发一:搭建环境:vue-cli创建项目,整合element、vue-router
这篇文章是关于如何使用vue-cli搭建vue环境,并整合Element UI和vue-router来开发一个基础的前端管理后台界面。
801 0
vue-element-admin 综合开发一:搭建环境:vue-cli创建项目,整合element、vue-router