thinkphp5 内置接口开发与使用

最近的一个项目在用tp5,对于tp3都几乎没用过的我来说~~~

tp5最好的一点就是对接口的单独封装,只要严格按照要求一步一步来就可以成功了

  1. 开启命令行:

    1. 配置环境变量
    2. 安装tp5项目
    3. cmd进入项目目录,运行php think,出现如下内容,则表示命令行开启成功

      具体指令参考手册 https://www.kancloud.cn/manual/thinkphp5/122951

  2. 创建自定义命令行(接口)

      1. 配置command.php文件,目录在application/command.php

        <?php
        
        return [    ‘app\api\controller\shell\控制器名称‘,];
      2. 创建命令类文件(接口文件),地址application/controller/shell/文件名称(驼峰命名)
      3. 编辑文件<?php
        namespace app\home\command;
        
        use think\console\Command;
        use think\console\Input;
        use think\console\Output;
        
        class Test extends Command
        {
            protected function configure()
            {
                
              //设置参数
                $this->addArgument(‘email‘, Argument::REQUIRED); //必传参数
                $this->addArgument(‘mobile‘, Argument::OPTIONAL);//可选参数
        
                //选项定义
                $this->addOption(‘message‘, ‘m‘, Option::VALUE_REQUIRED, ‘test‘); //选项值必填
                $this->addOption(‘status‘, ‘s‘, Option::VALUE_OPTIONAL, ‘test‘); //选项值选填
        
                $this->setName(‘test‘)->setDescription(‘Here is the remark ‘);
            }     

             protected function execute(Input $input, Output $output)     {  

                  //获取参数值
                      $args = $input->getArguments();
                      $output->writeln(‘The args value is:‘);
                      print_r($args);
                      //获取选项值
                      $options = $input->getOptions();
                      $output->writeln(‘The options value is:‘);
                      print_r($options);
      
                      $output->writeln(‘Now execute command...‘);
      
                      $output->writeln("End..");

                }

              }

      注意只有在配置中设置了参数,同时在execute中用封装的方法$input->getArguments();获取参数才能够精确获取到需要的参数,否则如果只是在execute中直接print($input)出现的是一个超级复杂的数据对象
  3. 测试-命令帮助-命令行下运行  php think

  4. 运行test命令  php think test

    同时可以将参数跟在命令后面当做参数传入  php think test 2017-06-05

    这样就完成了一个简单的接口

    但是在我刚刚进入命令行的时候,执行命令行中的tp5带命令,报了一个奇怪的错误igbinary 版本错误,原因是我安装的igbinary与php版本不匹配,重新安装就好了,但是目前还不知道igbinary和命令行运行之间有什么必然联系

时间: 2024-08-10 09:42:37

thinkphp5 内置接口开发与使用的相关文章

thinkphp5内置分页功能第二页没有拿到参数,如何解决?

本文转自:https://www.yunyingxbs.com/article/detail/id/342.html 感谢作者的无私分享! 最近在做项目,使用的是thinkphp5(tp5)开发的,使用tp5内置的分页功能. 那么,问题来了,我使用paginate函数生成分页时,若没有第二页是没有关系的,但是当出现分页时,结果没有请求参数. 也就是说,分页如何添加参数,搜索的时候第二页没有参数了,不可能每次手动添加吧? 查找paginate函数 细细看paginate函数包括三个参数,如下: /

设计模式:观察者模式(二)——C#内置接口实现观察者模式

通过C#的内置观察者接口实现观察者模式 1. 接口介绍 C#内部提供了IObservable和IObserver两个泛型接口,IObservable是可观察的,就是主题(Subject)要实现的接口,IObserver就是观察者需要实现的接口,接口定义如下: //T:提供通知信息的对象. public interface IObservable<out T> { //通知提供程序观察程序将接收通知. IDisposable Subscribe(IObserver<T> observ

Android App内置键盘开发

参考: http://blog.csdn.net/hfsu0419/article/details/7924673 布局文件activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="match_parent"      android:layout_height="match

tornado内置接口调用顺序initialize\prepare...

一. initialize方法 首先, 该方法是框架预留的一个初始化时加载自定义内容的钩子, 其会在http请求方法之前调用 二. prepare方法 预处理方法, 在执行对应的请求方法之前调用. http请求方法如下图 000 三. set_default_headers方法和write_error方法 具体作用及用法见前面笔记 四. on_finish方法 在请求处理结束后调用, 在该方法中可进行资源回收或日志处理等一些操作. 注意不要在该方法中进行数据的返回 五. 以上各方法调用顺序如下:

SpringBoot内置tomcat启动原理

前言 ? ? ? ? ?不得不说SpringBoot的开发者是在为大众程序猿谋福利,把大家都惯成了懒汉,xml不配置了,连tomcat也懒的配置了,典型的一键启动系统,那么tomcat在springboot是怎么启动的呢?? 内置tomcat ? ? ? ? ?开发阶段对我们来说使用内置的tomcat是非常够用了,当然也可以使用jetty. <dependency> <groupId>org.springframework.boot</groupId> <arti

【微网站开发】之微信内置浏览器API使用

最近在写微网站,发现了微信内置浏览器的很多不称心的地方: 1.安卓版的微信内浏览器底部总是出现一个刷新.前进.后退的底部栏,宽度很大,导致屏幕显示尺寸被压缩 2.分享当前网站至朋友圈时,分享的图片一般是网站的截图或者是首张图片,而分享的标题一般是网页title 3.当微网站图片很大或者需要加载耗费流量很大时,怎么提醒用户注意自己的网络状态呢? 就这最简单的两个问题,然后百度了一下,看了些研究过这个的牛们的博客,知道怎么搞了 为什么会有下面的toolbar,为什么会有那么个讨厌的底部栏?而且这个不

PSoC3开发板,无需昂贵的MiniProg3,CY8C3866AXI-040,内置USB BootLoader

学习PSoC3一定需要使用Miniprog3编程器吗?为大家分享一个IFLabs性价比很高的PSoC3开发板. 无需昂贵的Miniprog3编程器也可以轻松开发和学习PSoC3,基于功能强大的CY8C3866AXI-040芯片,开发板上内置USB BootLoader. 开发板详情:http://item.taobao.com/item.htm?id=43495032490了解IFLabs淘宝店铺:IdeaFutureLab 1.1 基本功能概述 开发板主要用于Cypress PSoC3系列芯片

java8中内置的四大核心函数式接口

java8中内置的四大核心函数式接口 Consumer<T>:消费型接口 void accept(T t) //Consumer<T> 消费型接口 public void happy(double money, Consumer<Double> con){ con.accept(money); } Supplier<T>:供给型接口 T get(); //Supplier<T> 供给型接口 //需求:产生一些整数,并放入集合中 public Li

微信内置浏览器私有接口WeixinJSBridge介绍

原文地址:http://www.3lian.com/edu/2015/05-25/216227.html 这篇文章主要介绍了微信内置浏览器私有接口WeixinJSBridge介绍,本文讲解了发送给好友.分享函数.隐藏工具栏.隐藏三个点按钮等功能,需要的朋友可以参考下 微信网页进入,右上角有三个小点,没错,我们用到的就是它!我们只要通过将小点列表下的按钮进行自定义,就可以随心所欲的分享我们自己的内容了. 注意:(WeixinJSBridge只能在微信内打开的网页有效) 按钮一之------发送给好