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文件。