thinkphp3.2引入第三方類庫
1、引入第三方類庫 .class.php檔案
1.1 類庫有寫namespace名稱空間
namespace Org\Util;
class Auth {
}
儲存到ThinkPHP/Library/Org/Util/Auth.class.php
。(也就是說以Think、Org為根名稱空間的類都可以自動載入:)
在其他Controller中,例項化:
new \Org\Util\Auth();
1.2 手動載入第三方類庫
如果要載入第三方類庫,包括不符合命名規範和字尾的類庫,以及沒有使用名稱空間或者名稱空間和路徑不一致的類庫,或者你就是想手動載入類庫檔案,我們都可以通過手動匯入的方式載入。
我們可以使用import方法匯入任何類庫
// 匯入Org類庫包 Library/Org/Util/Date.class.php類庫 import("Org.Util.Date"); // 匯入Home模組下面的 Application/Home/Util/UserUtil.class.php類庫 import("Home.Util.UserUtil"); // 匯入當前模組下面的類庫 import("@.Util.Array"); // 匯入Vendor類庫包 Library/Vendor/Zend/Server.class.php import('Vendor.Zend.Server');
對於import方法,系統會自動識別匯入類庫檔案的位置,ThinkPHP可以自動識別的類庫包包括Think、Org、Com、Behavior和Vendor包,以及Library目錄下面的子目錄,如果你在Library目錄下面建立了一個Test子目錄,並且建立了一個UserTest.class.php類庫,那麼可以這樣匯入:
import('Test.UserTest');
注意,如果你的類庫沒有使用名稱空間定義的話,例項化的時候需要加上根名稱空間,例如:
public funcion index(){
import('Test.UserTest');
$test = new \UserTest();
}
3、手動載入第三方普通.php字尾的原生檔案
如果你的第三方類庫都放在Vendor目錄下面,並且都以.php為類檔案字尾,也沒用採用名稱空間的話,那麼可以使用系統內建的Vendor函式簡化匯入。 例如,我們把 Zend \ Filter\Dir.php 放到 Vendor 目錄下面,這個時候 Dir 檔案的路徑就是 Vendor\Zend\Filter\Dir.php,我們使用vendor 方法匯入只需要使用:
public function index(){ Vendor('Zend.Filter.Dir'); $obj = new \Dir(); }
另外:如果你的檔案是a.b.php(b不是class)的話,也可以這樣匯入:
Vendor('目錄.a#b');
例項化物件時候,以class ab {...}示例:new \ab();
4、手動載入.php字尾且面向過程的檔案
什麼叫面向過程,就是檔案裡面沒有class aaa{} , 不用例項化操作,直接使用。
我們可以使用原生的語法:
在控制器的方法裡面使用:
include_once ‘./ThinkPHP/Library/Vendor/lib/aaa.bbb.php’;
這樣就完美的引入了一些原生面向過程的.php檔案。
import('Vendor.Wxpay.WxPayApi'); $test = new \WxPayApi(); $test->aa();