当前位置:首页 > 编程技术 > 正文内容

TP6.0命令行之自定义指令

yc8881年前 (2022-12-31)编程技术543

TP6.0命令行之自定义指令

1. 创建自定义指令


一、第一步: 创建自定义命令类文件

命令格式

  1. php think make:command 自定义命令类 命令名

使用示例

  1. php think make:command Hello hello
  1. php think make:command index@Hello hello

自定义命令类方法示例

configure() 方法用于指令的配置: 命令名、参数、选项、描述

execute() 方法在命令行执行指令时会执行

  1. protected function configure()
  2. {
  3. // 指令配置
  4. $this->setName('hello')
  5. ->setDescription('the hello command');
  6. }
  7. protected function execute(Input $input, Output $output)
  8. {
  9. // 指令输出
  10. $output->writeln('hello');
  11. }

二、第二步:在 config/console.php 配置文件定义命令

  1. return [
  2. // 指令定义
  3. 'commands' => [
  4. 'hello' => app\command\Hello::class,
  5. // 'hello' => app\index\command\Hello::class,
  6. ],
  7. ];

三、在命令行测试运行

  1. php think hello

2. 指令的参数、选项


一句话概括: 参数是必写的,选项的可选的

指令参数

  1. protected function configure()
  2. {
  3. // 指令配置
  4. $this->setName('hello')
  5. // 参数
  6. ->addArgument('name', Argument::OPTIONAL, "your name")
  7. ->setDescription('Say Hello');
  8. }
  9. protected function execute(Input $input, Output $output)
  10. {
  11. // 获取name参数值
  12. $name = trim($input->getArgument('name'));
  13. $name = $name ?: 'thinkphp';
  14. // 指令输出
  15. $output->writeln("Hello," . $name . '!');
  16. }

指令选项

  1. protected function configure()
  2. {
  3. // 指令配置
  4. $this->setName('hello')
  5. // 选项
  6. ->addOption('city', null, Option::VALUE_REQUIRED, 'city name')
  7. ->setDescription('Say Hello');
  8. }
  9. protected function execute(Input $input, Output $output)
  10. {
  11. if ($input->hasOption('city')) {
  12. $city = PHP_EOL . 'From ' . $input->getOption('city');
  13. } else {
  14. $city = '无';
  15. }
  16. // 指令输出
  17. $output->writeln("city: " . $city);
  18. }

本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10306.html

分享给朋友:

“TP6.0命令行之自定义指令” 的相关文章

【说站】Thymeleaf报错Error resolving template “XXX”

【说站】Thymeleaf报错Error resolving template “XXX”

修改了一下开源项目的目录结构访问突然报错Error resolving template “XXX”可能原因有如下三种:第一种可能:原因:在使用springboot的过程中,如果使用thymeleaf...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】Java从resources读取文件内容的方法有哪些

【说站】Java从resources读取文件内容的方法有哪些

本文主要介绍的是java读取resource目录下文件的方法,比如这是你的src目录的结构├── main│ ├── java│ │ └── ...

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

【说站】Python获取最新疫情数据实现动态地图实时展示各地情况

疫情降临转眼已经第三年了,时间过得真快,愿疫情早点结束,世界不再多灾多难。最近疫情稍微好转一些了,所以咱们获取一下最新的疫情数据,做个可视化地图看看。效果展示获取到的数据咱们保存到表格可视化地图颜色是...