1. 程式人生 > >【laravel5.7】寫個TP的vender()方法引入第三方sdk擴充套件包

【laravel5.7】寫個TP的vender()方法引入第三方sdk擴充套件包

前景摘要,剛接觸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 '<pre>';
    print_r($data);
    echo '</pre>';
    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.實操:

這是專案目錄結構

<?php
/**
 * 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);
    }

}