以创建控制器为例

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 自定义命令创建类文件的更多相关文章

  1. Linux命令——创建删除文件

    创建文件夹 mkdir filename 进入目录文件 cd filename 返回上一级目录 cd ..返回多级目录   cd ../../.. (../表示一级) 创建文件 touch filen ...

  2. intellij idea 无法创建类文件,方法。

  3. Swift: 在Swift中桥接OC文件(自己创建的类文件、第三方库文件)

    一.介绍 随着Swift的逐渐成熟,使用swift开发或者混合开发已经成为了一个趋势,本身苹果公司也十分推荐使用Swift这门新语言.目前Swift已经更新到了3.0,估计没有多久4.0就要出来了.那 ...

  4. Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用“alias”命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. 该文件内创建的自定义 ...

  5. node生成自定义命令(yargs/commander)

    第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而comma ...

  6. Windows中通过命令行新建文件夹、新建文件,和一些常用命令

    新建文件 和Linux不太一样,Linux中的touch和vi命令创建新文件的方法都不能用了,在windows命令行下得用type nul>文件名.后缀名来创建: F:\study\vue\wo ...

  7. 在windows桌面上创建一个文件夹

    用dos命令创建 md [文件路径][文件名] C:\Users\admin>md  C:\Users\admin\desktop\test 刷新一下桌面,就可以看见桌面上创建了一个名为test ...

  8. Linux系统中创建大文件,并作为文件系统使用

    在LInux系统的使用过程中,有时候会遇到诸如某个磁盘分区的大小不够用了,导致其下的文件系统不能正常写入数据.亦或者是系统swap分区太小,不够用或者不满足条件而导致的其他一系列问题.如果我们系统上挂 ...

  9. 第一步 使用sencha touch cmd 4.0 创建项目、打包(加入全局变量、公用类、自定义扩展、资源文件)

    参考资料: http://www.cnblogs.com/qqloving/archive/2013/04/25/3043606.html http://www.admin10000.com/docu ...

  10. LaTeX自定义宏包、类文件的默认搜索路径设置方法

      对于自定义的LaTeX宏包与类,在调用时可以通过在命令\documentclass{}与\usepackage{}命令中指定完整路径或者相对路径,这样确实可以调用,但是编译时总是有烦人的警告信息, ...

随机推荐

  1. 卧槽!这 5 个后端程序员学习指南竟然斩获超过 350k 的 star

    前段时间弄应届生学习指南的时候,整理了几个不错的开源文档,分享给小伙伴们!我觉得应该可以对大家有帮助. 本期文章对应的视频地址:https://www.bilibili.com/video/BV1xZ ...

  2. 大语言模型的预训练[3]之Prompt Learning:Prompt Engineering、Answer engineering、Multi-prompt learning、Training strategy详解

    大语言模型的预训练[3]之Prompt Learning:Prompt Engineering.Answer engineering.Multi-prompt learning.Training st ...

  3. 8.6 C++ 泛型化编程态

    C/C++语言是一种通用的编程语言,具有高效.灵活和可移植等特点.C语言主要用于系统编程,如操作系统.编译器.数据库等:C语言是C语言的扩展,增加了面向对象编程的特性,适用于大型软件系统.图形用户界面 ...

  4. Python 运用zabbix开发简易巡检工具

    利用SSH或者Zabbix监控,配合Django开发框架,改造出属于自己的监控平台,实现包括主机图形,自动发现,计划任务,批量cmd执行,服务监控,日志监控等功能,由于公司机器混乱,基本上市面上的所有 ...

  5. Linux的信号管理 [补档-2023-07-30]

    信号 11-1简介: ​ 信号只是表示某个信号,不可以携带大量信息,信号需要满足特点的条件才会产生.是一种特别的通信手 段. 11-2 信号机制: ​ 假设有两个进程A,B,现在进程A给进程B发送信号 ...

  6. 解决线程不安全的方式(Java)

    一.同步代码块 package com.synchronized1; // 买票示例 // 使用同步代码块解决线程安全问题 public class TicketRunnableImp impleme ...

  7. ROS节点通信(二)service和client

    目录 1.说明 2.创建功能包 3.自定义通信数据类型 4.编写代码 5.编译配置 5.1.CMakeLists.txt 5.2.package.xml 6.编译运行 1.说明 ROS的节点通信模式有 ...

  8. .NET周刊【1月第3期 2024-01-24】

    国内文章 .NET开源的简单.快速.强大的前后端分离后台权限管理系统 https://www.cnblogs.com/Can-daydayup/p/17980851 本文介绍了中台Admin,一款基于 ...

  9. yapi 个人空间 这个分组的问题

    总结:yapi个人空间分组的问题,我暂时不用理睬 他自己自由,但是 不允许他 创建非个人空间的分组.这点留意 避免不统一.所有的分组都必须我自己来创建,不允许他们私自创建.

  10. NC16641 [NOIP2007]守望者的逃离

    题目链接 题目 题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒 ...