相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說(shuō)明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫(xiě)文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
thinkPHP5項(xiàng)目中實(shí)現(xiàn)QQ第三方登錄功能

本文實(shí)例講述了thinkPHP5項(xiàng)目中實(shí)現(xiàn)QQ第三方登錄功能。分享給大家供大家參考,具體如下:
最近用thinkPHP 5框架做了一個(gè)婚紗店的項(xiàng)目,在開(kāi)發(fā)過(guò)程中需要用到第三方登錄,騰訊官方給的案例是幾個(gè)文件相互包含實(shí)現(xiàn)的,放到tp5里面很悲催的發(fā)現(xiàn)在控制器中不能通過(guò)include或者require完成預(yù)期功能,想要用騰訊官方封的類就必須對(duì)其進(jìn)行修改,修改如下:
1. 找到官方SDK里面的核心文件
框架外使用的時(shí)候是include 'qqConnectAPI.php'
,打開(kāi)這個(gè)文件可以看到它是包含了另外幾個(gè)文件的,comm文件夾下的幾個(gè)文件無(wú)非就是定義一些常量,記錄一下你的APP KEY這些信息,都無(wú)關(guān)緊要,只要把class文件夾下的幾個(gè)類文件放到tp5里面就好了,而且仔細(xì)看一下代碼會(huì)發(fā)現(xiàn)其實(shí)只要拿到三個(gè)類就完全可以實(shí)現(xiàn)功能了。
2. 放到tp框架里
tp5推薦將第三方的東西,同時(shí)又不是composer安裝的統(tǒng)一放到extend目錄下,因?yàn)榭赡芤院筮€要做其他擴(kuò)展,這里將qq登錄相關(guān)的單獨(dú)建一個(gè)qqlogin文件夾,
可以看到里面只有三個(gè)類,我去掉了一個(gè)Recorder和一個(gè)ErrorCase類,見(jiàn)名知意,這兩個(gè)的作用是記錄一些信息,如access_token,還有異常處理,這里我就直接刪掉了。另外注意,按照psr4規(guī)范,類名要跟文件名一致,所以要把文件名改一下,同時(shí)加上命名空間extend\qqlogin,tp5所有的類都要有命名空間。
另外為了防止tp5找不到我們需要的文件,最好在config.php文件里注冊(cè)一條根命名空間,在第30行:
// 注冊(cè)的根命名空間 'root_namespace' => [ 'extend\qqlogin' => '../extend/qqlogin/', 'extend\baidu' => '../extend/bdlogin/' ],