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


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

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

    具体实现方便如下:

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

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

    1. 根目录ApplicationCommonCommonfunction.php(公共的函数,Home和Admin都可以调用)
    2. 根目录ApplicationHomeCommonfunction.php(Home层公共的函数,只可以Home层调用)
    3. 根目录ApplicationAdminCommonfunction.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函数来获取接口数据

    第一步:在根目录ApplicationHomeCommon创建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 HomeController;
    use ThinkController;
    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函数来获取接口数据的例子;

  • 相关阅读:
    javascript 判断电话号码的格式
    JavaScript 'Pig latin is cool'==>'igPay atinlay siay oolcay'
    JavaScript 找出特殊数字如135 = 1^1 + 3^2 + 5^3
    nginx+Apache实现动静分离
    MYSQL数据库的主从复制
    Connection could not be established with host smtp.163.com [Connection timed out #110]
    Yii2 的 redis 应用
    Yii2 模块名、控制器名、方法名
    讯搜
    支付宝异步通知时间点分布
  • 原文地址:https://www.cnblogs.com/wenzheshen/p/7506151.html
Copyright © 2020-2023  润新知