import('類庫名', '起始路徑', '類庫後綴')
別名 vendor() 專門用於第三方類庫,默認路徑與後綴不同。
import('Think.Util.Array');
// → THINK_PATH.'Lib/Util/Array.class.php'
import('Think.Util.U1.ClassA'); // 支援多級目錄
import('Think.Util.U1.A2.ClassB');
位於 Extend/Library/,僅支援 ORG、Com 兩包:
import('ORG.Util.Image'); // → Extend/Library/ORG/Util/Image.class.php
import('Com.Sina.OAuth'); // → Extend/Library/Com/Sina/OAuth.class.php
非 Think/ORG/Com 開頭默認為項目類庫:
import("MyApp.Action.UserAction");
import("MyApp.Model.InfoModel");
// 簡寫(@ 代表當前項目)
import("@.Action.UserAction");
import("@.Model.InfoModel");
特殊路徑或非 .class.php 後綴:
import('Common.MyClass', APP_PATH, '.php'); // Common/MyClass.php
import('MyClass', APP_PATH.'Common', '.php'); // 同效
import("RBAC.AccessDecisionManager", dirname(__FILE__), ".php"); // 當前目錄
// 文件名含點號(如 User.Info.class.php)用 # 代替點
import("ORG.User#Info"); // → ORG/User.Info.class.php
放置於 Vendor/ 目錄,使用 vendor():
Vendor('Zend.Filter.Dir'); // → Vendor/Zend/Filter/Dir.php
Vendor('Zend.Filter.Dir', dirname(__FILE__), '.class.php'); // 自定義路徑後綴
項目配置目錄建立 alias.php:
return array(
'rbac' => LIB_PATH.'Common/Rbac.class.php',
'page' => LIB_PATH.'Common/Page.class.php',
);
調用:import("rbac"); import("page");。
優勢: 效率高於命名空間導入;限制: 禁止使用 import 第二、三參數,需預先定義。
現狀: 框架內部已廣泛採用自動加載,手動 import 主要用於擴展類庫、第三方類庫及特殊文件場景。配合別名定義與自動加載路徑,可進一步減少手動導入。