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

相关文章

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

基于Redis自动过期的流处理暂停机制

《基于Redis自动过期的流处理暂停机制》基于Redis自动过期的流处理暂停机制是一种高效、可靠且易于实现的解决方案,防止延时过大的数据影响实时处理自动恢复处理,以避免积压的数据影响实时性,下面就来详... 目录核心思路代码实现1. 初始化Redis连接和键前缀2. 接收数据时检查暂停状态3. 检测到延时过

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Linux grep 命令的使用指南

《Linuxgrep命令的使用指南》本文给大家介绍Linuxgrep命令的使用指南,包括基础搜索语法、实践指南,感兴趣的朋友跟随小编一起看看吧... 目录linux grep 命令全面使用指南一、基础搜索语法1. 基本文本搜索2. 多文件搜索二、常用选项详解1. 输出控制选项2. 上下文控制选项三、正则表达