thinkphp3.2.x是一個非常強大的架構,但它并不是萬能的,有時候需要第三方擴充類庫加入到裡面來使用。
這裡介紹一下Thinkphp3.2.3導入第三方擴充類庫。
第三方類庫
第三方類庫指除了 ThinkPHP 架構、應用項目類庫之外的其他類庫,一般由第三方系統或産品提供,如 Smarty、Zend 等系統的類庫等。
前面使用自動加載或 import 方法導入的類庫,ThinkPHP 約定是以 .class.php 為字尾的,非這類的字尾,需要通過 import 的參數來控制。
但對第三類庫,由于不會有此約定,其字尾隻能認為是 php 。為了友善的引入其他架構和系統的類庫,ThinkPHP 特意提供了導入第三方類庫的功能。第三方類庫統一放置在 ThinkPHP系統目錄/Vendor 下面,并且使用 vendor 方法導入。
vendor 方法
文法:
boolen vendor(class, baseUrl, ext)
複制
參數說明:
參數 說明class 必須,表示要導入的類庫,采用命名空間的方式。
baseUrl 可選,表示導入的基礎路徑,省略的話系統采用 ThinkPHP系統目錄/Vendor 目錄。
ext 可選,表示導入的類庫字尾,預設是 .php 。
複制
與 import 方法的差別在于,vendor 方法預設的導入路徑為 ThinkPHP系統目錄/Vendor 目錄,預設字尾為 .php 。
使用
當我們想在ThinkPHP中引入第三方擴充,而第三方擴充又沒有按照ThinkPHP的規範在編寫的時候時,就需要将第三方擴充放置到Library/Vendor目錄下,當然,這是針對ThinkPHP 3.2而言,低版本則根據情況來看了。
然後需要在Controller或function中使用第三方擴充時,就可以直接使用vendor()方法來進行引用了。

1、首先,我們在ThinkPHP/Library/Verdor下面建立一個檔案夾,假設叫Lanar2
2、第三方擴充類庫的檔案名為Lunar1.php,複制到Lunar2這個檔案下來
3、假設這個Lunar1.php裡面定義的是class Lunar{……
在控制器中使用這個擴充類庫的方法是
Vendor("Lunar2.Lunar1");
$lunar = new \Lunar();
$month = $lunar->convertSolarToLunar(2017,7,14);
print_r($month);
/**
* 生成二維碼
* @param string $url url連接配接
* @param integer $size 尺寸 純數字
*/
function qrcode($url,$size=4){
Vendor('Phpqrcode.phpqrcode');
if (strpos($url, 'http')===false) {
$url='http://'.$url;
}
QRcode::png($url,false,QR_ECLEVEL_L,$size,2,false,0xFFFFFF,0x000000);
}
複制