1. 程式人生 > >thinkphp3.2引入第三方類庫

thinkphp3.2引入第三方類庫

1、引入第三方類庫 .class.php檔案

 1.1 類庫有寫namespace名稱空間

  1. namespace Org\Util;
  2. class Auth {
  3. }

儲存到ThinkPHP/Library/Org/Util/Auth.class.php。(也就是說以Think、Org為根名稱空間的類都可以自動載入:)

在其他Controller中,例項化:

  1. 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();