Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据

当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简;

TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调用就可以使用,方便快捷;

具体实现方便如下:

我们可以再三个地方设置公共的函数function.php

(注意:function.php默认是不存在的,需手动创建)

  1. 根目录\Application\Common\Common\function.php(公共的函数,Home和Admin都可以调用)
  2. 根目录\Application\Home\Common\function.php(Home层公共的函数,只可以Home层调用)
  3. 根目录\Application\Admin\Common\function.php(Admin层公共的函数,只可以Admin层调用)

具体讲function存放在哪里自己可以自由的选择

另外当我们不想使用function命名的function.php函数时,也是可以的,但是就是需要自己手动设置下

方法如下:

在根目录/Application/Common/Conf/config.php中添加配置:

"LOAD_EXT_FILE"         =>‘vaildata‘,//自动加载公共目录Common下的扩展函数库 

此时就可以自动加载vaildate.php 文件了。
如果有多个需要自动加载的文件,在配置项的值中以","进行分隔即可,例如:

"LOAD_EXT_FILE"         =>‘vaildata,upload,download‘,//自动加载公共目录Common下的扩展函数库 

举例:封装CURL函数来获取接口数据

第一步:在根目录\Application\Home\Common\创建function.php函数;

<?php
    //封装公共的CURL函数
    function curl($url){
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        $data = curl_exec($curl);
        curl_close($curl);
        return $data;
    }

?>

第二步:在需要调用的Controller层调用CURL函数;

<?php
namespace Home\Controller;
use Think\Controller;
class WxJsAPIController extends Controller {
    public function index(){

        //获取接口数据
        $url = ‘此处填写接口地址‘;
        $data_son = curl($url);//调取function.php封装的CURL函数
        $data = json_decode($data_json,true)[‘access_token‘];
        var_dump($data);//JSON数据转换成数组形式

         //如果还需要调用CURL函数,同上直接curl("接口地址")即可;

    }
}
?>

以上就是Thinkphp3.2.3框架下封装公共的函数和封装CURL函数来获取接口数据的例子;

时间: 2024-10-24 18:57:29

Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据的相关文章

c# .net获取文件夹下的所有文件(多层递归),并获取区间数据(Jsion,xml等数据)写出到处理文件,学习分享~

static void Main(string[] args)        { string path = string.Format(@"C:\Users\Administrator\Desktop\{0}", @"shenzheng");//根目录            List<string> filePaths = GetAllDirectories(path);//返回根目录下所有文件(包括路径)的集合            foreach

手把手写一个基于Spring Boot框架下的参数校验组件

手把手写一个基于Spring Boot框架下的参数校验组件(JSR-303) 前言 之前参与的新开放平台研发的过程中,由于不同的接口需要对不同的入参进行校验,这就涉及到通用参数的校验封装,如果不进行封装,那么写出来的校验代码将会风格不统一.校验工具类不一致.维护风险高等其它因素,于是我对其公共的校验做了一个封装,达到了通过注解的方式即可实现参数统一校验. 遇到的问题                    在封装的时候就发现了一个问题,我们是开放平台,返回的报文都必须是统一风格,也就是类似于{co

黑马程序员--oc基础第十篇(foundation框架下、集合)

十 . oc基础(Foundation框架下) 1.下面介绍几种OC对象类型的存储结构:NSArray,NSDictionary,NSSet,以及基本数据类型封装类. NSNumber:*既然这几种数据结构都是用来存放对象类型的那么基本数据类型想要放入其中就要先对他们进行封装.使用NSNumber对基本数据类型进行封装. // // Created by keeganlee on 15/3/2. // Copyright (c) 2015年 keeganlee. All rights reser

自定义MVC框架之工具类-分页类的封装

以前写过一个MVC框架,封装的有点low,经过一段时间的沉淀,打算重新改造下,之前这篇文章封装过一个验证码类. 这次重新改造MVC有几个很大的收获 >全部代码都是用Ubuntu+Vim编写,以前都是windows上开发,这次彻底迷上Ubuntu Linux >裸装php,用php自带的服务器解释执行php,缺哪个扩展就装哪个,最后通过整个MVC框架的开发,把Lamp所有的常用配置与细节搞懂 >通过扩展安装,学习扩展开发与php底层源码分析 总之,终于感觉层次又提升了不少. 分页类代码:

react初探(二)之父子组件通信、封装公共组件

一.前言 在组件方面react和Vue一样的,核心思想玩的就是组件,下面举两个组件常用的情景. 场景一:假如我们现在有一个页面包含表格以及多个弹框,这种时候如果将这个页面的业务代码写在一个组件中,那么这一块的代码会看着非常恶心.如果这个时候我们将这个页面的表格以及弹框这些单独的模块分别写成组件的形式,然后再在这个页面中将这些组件引入进来,那样我们的代码会看着非常整洁.这样做会需要使用到父子组件之间的通信,下面会详细解释. 场景二:日常项目中我们会经常遇到某一个功能会在不同地方使用,但是每次使用的

Eclipse框架下rtklib动态库编译

1.前言 RTKLIB是全球导航卫星系统GNSS(global navigation satellite system)的标准&精密定位开源程序包,包含了丰富的导航定位算法应用.通信协议接口和各类函数库API,具体内容可参考笔者博文<RTKLIB编译及RTCM数据读取样例>. 目前网络上流传的rtklib动态库编译博文多是基于Microsoft Visual Studio框架,这主要是由于国人习惯于使用微软Windows操作系统的缘故,而rtklib本质上是一个跨平台的导航定位库,其在

关于在SSM框架下使用PageHelper

很长一段时间里,我学习编程很少总结代码.后来代码总结也只是写在一个电脑里的文件夹,觉得与互联网脱轨了,哈哈哈,所以现在也准备写一写博客,记录自己,提高水平. 这是我的第一篇,也是关于SSM框架下使用PageHelper. 这里不具体写我做的项目课题的全部内容,主要专注于PageHelper部分 工程结构如下图: 首先在pom.xml(parking_dao模块下)引入PageHelper依赖 1 <?xml version="1.0" encoding="UTF-8&q

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建 选择Linux桌面环境Deepin2014.1下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的. 先说vim和DBGp插件. Deepin2014.1简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了.可以节省不少步骤.这里提供一个vim的配

caffe框架下目标检测——faster-rcnn实战篇操作

原有模型 1.下载fasrer-rcnn源代码并安装 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 1)  经常断的话,可以采取两步: git clone https://github.com/rbgirshick/py-faster-rcnn.git 2)  到py-faster-rcnn中,继续下载caffe-faster-rcnn,采取后台跑: git submodule update --in