天天看點

如何在ThinkPHP中引入第三方類庫

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()方法來進行引用了。

如何在ThinkPHP中引入第三方類庫

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

複制