Thinkphp6 自定义命令创建类文件
以创建控制器为例
1、先通过 think 命令创建一个make文件,效果如下图:
php think make:command make/MyController

2、修改上面创建的文件【MyController.php】
<?php
declare (strict_types = 1); namespace app\command\make; use think\console\Command;
use think\console\Input;
use think\console\input\Argument;
use think\console\input\Option;
use think\console\Output; class MyController extends Command
{
protected function configure()
{
// 指令配置
$this->setName('mycontroller')
->setDescription('the mycontroller command');
} protected function execute(Input $input, Output $output)
{
// 指令输出
$output->writeln('mycontroller');
}
} /***************************************** 上面是原来的内容,下面是修改后的内容 *****************************************/ <?php
declare (strict_types = 1); namespace app\command; use think\console\command\Make; /**
* 自定义控制器模板
* Class MyController
* @package app\command
*/
class MyController extends Make
{
protected $type = "MyController"; protected function configure()
{
parent::configure();
$this->setName('make:myController')
->setDescription('Create a new self controller class');
} public function getStub(): string
{
$stubPath = __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR; return $stubPath . 'controller.stub';
} protected function getClassName(string $name): string
{
return parent::getClassName($name) . ($this->app->config->get('route.controller_suffix') ? 'Controller' : '');
} protected function getNamespace(string $app): string
{
return parent::getNamespace($app);
}
}
3、在 app/command/make 目录下创建名为【stubs】的目录,且在【stubs】下创建一个名为【controller.stub】的文件,效果如下图:

4、找到项目中原有的【controller.stub】文件,具体位置在【vendor/topthink/framework/src/think/console/command/make/stubs/controller.stub】。复制原有文件中的内容到新建的【controller.stub】中。
注意:【controller.stub】模板中的变量只有下图中的四个。

5、在【config/console.php】中加入第一步中创建的命令,效果如下图:

6、现在可以通过 think 的命令查看我们所创建的自定义命令,结果如下图:
php think

7、使用自定义的think命令创建一个名为【Test】控制器类,效果如下图:
//admin/controller/Test 这是文件的路径+文件名,根据自己项目调整
php think make:myController admin/controller/Test

Thinkphp6 自定义命令创建类文件的更多相关文章
- Linux命令——创建删除文件
创建文件夹 mkdir filename 进入目录文件 cd filename 返回上一级目录 cd ..返回多级目录 cd ../../.. (../表示一级) 创建文件 touch filen ...
- intellij idea 无法创建类文件,方法。
- Swift: 在Swift中桥接OC文件(自己创建的类文件、第三方库文件)
一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那 ...
- Linux 创建自定义命令
Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用“alias”命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. 该文件内创建的自定义 ...
- node生成自定义命令(yargs/commander)
第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而comma ...
- Windows中通过命令行新建文件夹、新建文件,和一些常用命令
新建文件 和Linux不太一样,Linux中的touch和vi命令创建新文件的方法都不能用了,在windows命令行下得用type nul>文件名.后缀名来创建: F:\study\vue\wo ...
- 在windows桌面上创建一个文件夹
用dos命令创建 md [文件路径][文件名] C:\Users\admin>md C:\Users\admin\desktop\test 刷新一下桌面,就可以看见桌面上创建了一个名为test ...
- Linux系统中创建大文件,并作为文件系统使用
在LInux系统的使用过程中,有时候会遇到诸如某个磁盘分区的大小不够用了,导致其下的文件系统不能正常写入数据.亦或者是系统swap分区太小,不够用或者不满足条件而导致的其他一系列问题.如果我们系统上挂 ...
- 第一步 使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)
参考资料: http://www.cnblogs.com/qqloving/archive/2013/04/25/3043606.html http://www.admin10000.com/docu ...
- LaTeX自定义宏包、类文件的默认搜索路径设置方法
对于自定义的LaTeX宏包与类,在调用时可以通过在命令\documentclass{}与\usepackage{}命令中指定完整路径或者相对路径,这样确实可以调用,但是编译时总是有烦人的警告信息, ...
随机推荐
- Leetcode 面试题22. 链表中倒数第k个节点 Java语言求解
题目链接 https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 题目内容 输入一个链表,输出该链 ...
- Redis中的key的生存时间和过期时间
目录 1.说明 2.指令 2.1.删除和更新 3.过期时间的保存 4.计算剩余生存时间 5.过期键的删除策略 5.1.定时删除 5.2.惰性删除 5.3.定期删除 1.说明 生存时间: (Time T ...
- Windows配置PHP的MongoDB扩展
环境 Windows 10 PHP 5.6.40/8.1.11 配置 下载MongoDB扩展 下载地址:https://pecl.php.net/package/mongodb 下载PHP版本对应的扩 ...
- 在k8s中,有哪些存储?
在 Kubernetes(简称 K8s)中,有多种内置和外部的存储解决方案,它们可以满足不同场景下的持久化存储需求.以下是一些常见的存储类型: PersistentVolume (PV): Persi ...
- 如何进行IIS性能优化,提高应用并发能力
2021-03-05 先附上IIS的官方文档,如果你的英文阅读能力不错的话,直接阅读官方文档,更加清楚明白: https://docs.microsoft.com/zh-cn/iis/get-star ...
- 小知识:OGG的TRANLOGOPTIONS MINEFROMACTIVEDG参数
最近客户有一个需求,OGG源端需要配置在ADG环境,按历史配置规范,开启抽取进程报错: 2020-08-26 18:02:27 ERROR OGG-00060 Extract requires a v ...
- .NET Core开发实战(第9课:命令行配置提供程序)--学习笔记
09 | 命令行配置提供程序:最简单快捷的配置注入方法 这一节讲解如何使用命令行参数来作为配置数据源 命令行配置(提供程序的)支持三种格式的命令 1.无前缀的 key=value 模式 2.双中横线模 ...
- 回顾复习之坐标DP
定义 坐标型动态规划一般是给定网格.序列,求满足条件的MAX或MIN. 开数组时,dp[i]一般代表以ai结尾的满足条件的子序列,dp[i][j]代表以i.j结尾的满足条件的最优解 例题 数塔 典中典 ...
- JS script脚本async和defer的区别
壹 ❀ 引 我在 google recaptcha 谷歌人机身份验证使用教程 一文中有引用这样一段外部资源代码,如下: <script src="https://www.google. ...
- NC20164 [JSOI2008]最大数MAXNUMBER
题目链接 题目 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度. ...