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);
}
}