【laravel5.7】写个TP的vender()方法引入第三方sdk扩展包

2018-10-23 10:55:07 影TXX 阅读数 4902更多

分类专栏: laravel

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/TXX_c/article/details/83302738

前景摘要,刚接触laravel不久,不造怎么引入第三方sdk包,网上搜了全都是要去改composer的自动加载;不想搞,于是想到了TP的vender方法,于是试着写一下;

按之前的项目以来一直有个习惯是建个公共函数文件和常量文件;

1.在app目录下新建 common.php放哪不重要哈,找得到就行;

2.在public/index.php 也就是项目入口文件里加入一句

//引入公共函数,路径要根据自己放哪去写

require __DIR__.'/../app/common.php';

3.在common.php里添加方法,然后再项目的所有地方都可以随意调用

//比如个人用习惯了的p方法

/**

* 打印函数

* @param array|string $data

* @param bool $exit

*/

function p($data = [],$exit=false){

    echo '

';

    print_r($data);

    echo '

';

    if(!empty($exit)){

        exit;

    }

}

4.上面纯属安利,下面说重点,在根目录下(目录随意,找得到即可)新建extends文件夹用于存放第三方扩展工具包

5.在上面建好的common.php中添加vender()方法

/**

* 引入扩展函数 用法:vender('baidu.AipSpeed')或vender('baidu/AipSpeed');

* @param string $path

*/

function vender($path = ''){

    //允许两种路径表达方式

    $path = str_replace('.','/',$path);

    //若省略文件文件后缀就给补上

    if(!strpos($path,'.php')){

        $path.='.php';

    }

    //这个路径是要看你们自己定的来改

    require_once "../extends/{$path}";

}

6.实操:

这是项目目录结构



在控制器里调用第三方sdk.如果控制器都不会建,请移步https://blog.csdn.net/TXX_c/article/details/82995400

/**

* Created by PhpStorm.

* User: 影TXX

* Date: 2018/10/22

* Time: 18:51

*/

namespace App\Http\Controllers\Api;

use App\Http\Controllers\Controller;

class Bd extends Controller

{   

    /**

    * 文字转语音

    */

    function strToMp3(){

        //引入第三方类

        vender('baidu.AipSpeech');

        $speech = new \AipSpeech('146666658','ZHEGESHIJIADEAPIKEY','ZHegEMIyaOYEshIJiAdE');

        $wd = request()->get('wd','TXX真他喵帅');

        $res =  $speech->synthesis($wd,'zh', $ctp=1);

        header('Content-Type:audio/mp3');

        exit($res);

    }

}

你可能感兴趣的:(【laravel5.7】写个TP的vender()方法引入第三方sdk扩展包)