tp5 tp6 自动载入自定义命令类

2024-03-06 19:12

本文主要是介绍tp5 tp6 自动载入自定义命令类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Tp5 的自动加载命令

将以下代码放在tp5的 application\common.php 内并执行函数,系统会自动的获取app下的各应用内的 command 目录的命令,注意,不要在application\command.php


if (!function_exists('addDefaultCommands')) {function addDefaultCommands(){$dir = __DIR__;$items =   scandir($dir);$dirs = [];foreach ($items as $item) {if ($item === '.' || $item === '..') {continue;}$path = $dir . DIRECTORY_SEPARATOR . $item . DIRECTORY_SEPARATOR . 'command';if (@is_dir($path)) {$dirs[$item][] = $path;}}$dirs['base'][] = $dir . DIRECTORY_SEPARATOR . 'command';$commands = [];foreach ($dirs as $model => $dir) {foreach ($dir as $key => $value) {if (is_dir($value)) {$Files = scandir($value);foreach ($Files as $file) {if ($file === '.' || $file === '..') {continue;}$model_ = ($model !== 'base') ? $model . '\\' : '';$className = 'app\\' . $model_ . 'command\\' . basename($file, '.php');if (class_exists($className)) {$commands[$model . ':' . strtolower(basename($file, '.php'))] = $className;}}}}}\think\Console::addDefaultCommands($commands);}
}
addDefaultCommands();

 Tp6的操作如下:

将此service正常导入到service配置中,将现有的命令行注释掉引用即可

<?phpnamespace app\common\service\Console;use think\facade\Cache;
use think\Service as BaseService;/*** 自动注册模块命令*/
class AutoRegModeConsoleService extends BaseService
{public function boot(){$this->commands($this->getFile());return true;}function getFile(){$dir =    root_path() . 'app';$items =   scandir($dir);$dirs = [];foreach ($items as $item) {if ($item === '.' || $item === '..') {continue;}$path = $dir . DIRECTORY_SEPARATOR . $item . DIRECTORY_SEPARATOR . 'command';if (@is_dir($path)) {$dirs[$item][] = $path;}}$dirs['base'][] = $dir . DIRECTORY_SEPARATOR . 'command';$commands = [];foreach ($dirs as $model => $dir) {foreach ($dir as $key => $value) {if (is_dir($value)) {$Files = scandir($value);foreach ($Files as $file) {if ($file === '.' || $file === '..') {continue;}$model_ = ($model !== 'base') ? $model . '\\' : '';$className = 'app\\' . $model_ . 'command\\' . basename($file, '.php');if (class_exists($className)) {$commands[$model . ':' . strtolower(basename($file, '.php'))] = $className;}}}}}return $commands;}
}
<?phpuse app\common\service\Console\AutoRegModeConsoleService;
use app\common\service\MultiApp\Service;// 系统服务定义文件
// 服务在完成全局初始化之后执行
return [Service::class,AutoRegModeConsoleService::class,
];

 

这篇关于tp5 tp6 自动载入自定义命令类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/781041

相关文章

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用