導航:首頁 > 編程語言 > php類庫的載入

php類庫的載入

發布時間:2025-09-08 03:44:27

1. thinkphp5 extend擴展庫放哪裡,該怎麼new

類庫擴展包括基類庫擴展、應用類庫擴展和第三方類庫擴展,所有擴展類庫不會自動載入,需要手動載入或者定義別名和配置自動載入(詳細可以參考4.2.3類庫導入和4.2.5自動載入)。

目前支持的基類庫擴展包括ORG(第三方公共類庫包)和Com(企業類庫包)。你可以在ORG類庫目錄下面添加自己需要的類庫,你甚至還可以創建屬於自己企業的類庫,只需要在Extend/Library目錄下面創建Com目錄,然後在裡面增加相應的類庫就可以方便的使用import方法導入了。例如,我們在Extend/Library/Com下面創建了Sina目錄,並且放了UtilUnitTest.class.php類庫文件,可以使用下面的方式導入

import('Com.Sina.Util.UnitTest');

目前官方提供的擴展或者第三方擴展都在ORG類庫包下面。

項目類庫的擴展,和基類庫的擴展一樣,我們可以在項目類庫目錄增加你想要的子目錄,也只有在項目類庫目錄下面增加的類庫才能使用import方法導入。例如,我們在MyApp的項目類庫目錄Lib下面增加Common和Util目錄,就可以這樣載入這些目錄下面的類庫文件了:

import('MyApp.Util.UnitTest');

import('@.Common.CommonUtil');

如果你直接使用的是第三方的類庫包,或者是類名和後綴和ThinkPHP的默認規則不符合的,我們建議你放到第三方類庫擴展目錄Extend/Vendor目錄下面,並使用vendor方法來導入。

例如,我們把Zend的FilterDir.php 放到Vendor目錄下面,這個時候Dir文件的路徑就是

VendorendFilterDir.php,我們使用vendor方法導入就是:

Vendor('Zend.Filter.Dir');

Vendor('Zend.Filter.Dir','','.class.php');

或者使用:

import('Zend.Filter.Dir',VENDOR_PATH);

通過使用第三方類庫擴展,我們可以直接使用Zend、CI或者其他框架中的類庫。

2. thinkphp import 導入文件怎麼使用

1,ThinkPHP import 方法
ThinkPHP 模擬了 Java 的類庫導入機制,統一採用 import 方法進行類文件的載入。import 方法是 ThinkPHP 內建的類庫和文件導入方法,提供了方便和靈活的文件導入機制,完全可以替代 PHP 的 require 和 include 方法。
但對於第三方類庫,我們建議使用 vendor 方法來導入。
2,import 語法:
boolen import(class, baseUrl, ext)

參數說明:

參數
說明

class 必須,表示要導入的類庫,採用命名空間的方式。
baseUrl 可選,表示導入的基礎路徑,省略的話系統採用默認的規則,具體見下文。
ext 可選,表示導入的類庫後綴,默認是 .class.php 。
import 方法是 ThinkPHP 內置的一個普通函數,可以在模塊操作內自由使用,可以參考 PHP include 和 require 的用法。
import 類庫導入例子
導入 ThinkPHP 基類庫文件
import 方法導入 ThinkPHP 基類庫文件,約定導入 Think、ORG、Com 包以 ThinkPHP 系統基類庫為相對起始目錄:
// 導入 ThinkPHP系統目錄/Lib/Think/Util/Session.class.php 文件
import("Think.Util.Session");
// 導入 ThinkPHP系統目錄/Lib/ORG/Util/Page.class.php 文件
import("ORG.Util.Page");

導入項目應用類庫文件
// 導入 MyApp項目 Lib/Action/UserAction.class.php 文件
import("MyApp.Action.UserAction");
// 導入 MyApp項目 Lib/ORG/Page.class.php 文件
import("MyApp.ORG.Page");
// 導入 MyApp項目 Lib/ORG/My/Image.class.php 文件
import("MyApp.ORG.My.Image");

如果是當前項目,可以簡化為:
import("@.Action.UserAction");
import("@.ORG.Page");
import("@.ORG.My.Image");

這種寫法有利於項目的移植。如果是導入其他項目的類庫,必須指定項目名稱:
import("OtherApp.Action.UserAction");

注意:使用這種方式導入其他項目的類庫時,必須保證兩個項目的目錄是平級的,否則需要指定 baseUrl 參數。
指定 baseUrl 參數
對於以上導入系統類庫和項目類庫的情況,import 方法會自動識別類庫導入的路徑,其他情況就需要指定 baseUrl 參數。如導入當前文件所在目錄下的 My.class.php 文件:
import("My",dirname(__FILE__));

指定 ext 參數
ext 參數表示導入的類庫後綴,默認是 .class.php。如果導入的文件不是 *.class.php 格式的,可以指定 ext 參數。如導入當前文件所在目錄下的 My.php 文件:
import("My",dirname(__FILE__),".php");

. 符號文件導入
在 import 方法中,. 符號是用於表示目錄層次的,如果需要導入的文件名包含有 . 符號,如 User.Info.class.php ,那麼需要以 # 號來代替 . 號:
import("@.Action.User#Info");

別名導入
如果在別名定義文件定義了別名:
'AdvModel' => THINK_PATH.'/Lib/Think/Core/Model/AdvModel.class.php',

可以使用 import 方法以別名的方式導入對應的類庫文件:
import('AdvModel');

系統默認的別名定義文件位於 ThinkPHP 系統目錄下的 Commonalias.php,也可以定義項目自己的別名文件。
其他說明
同名文件導入沖突
import 方法具有緩存和檢測機制,相同的文件不會重復導入,如果發現導入了不同的位置下面的同名類庫文件,系統會提示沖突,例如:
import("Think.Util.Array");
import("App.Util.Array");

上面的情況導入會產生引入兩個同名的 Array.class.php 類,即使實際上的類名可能不存在沖突,但是按照 ThinkPHP 命名規范,類名和文件名是一致的,所以系統會拋出類名沖突的異常,並終止執行。
什麼時候需要使用 import 方法?
import 方法用於導入當前需要而 ThinkPHP 又不能自動載入的文件,如系統基類 ORG 與 Com 目錄下的擴展基類,自己的類庫等。至於第三方類庫,也可以使用 import 方法導入,但建議使用 vendor 方法導入。
import 方法與 import 標簽的區別
import 方法用於模塊操作中導入不能自動載入的文件類庫,import 標簽用於在模板中導入外部 Js 和 CSS 文件。
import 方法與 PHP6 import
在未來的 PHP6 版本中開始支持命名空間和 import 關鍵字,因此可以預見,ThinkPHP 可能會對 import 方法加以改寫。

3. 請教PHP中spl_autoload_register與spl_autoload_unregister 用法

spl的全稱是:標准PHP類庫,spl函數是用來對php自帶autoload_func機制的管理。
spl_autoload_register表示注冊一個類到autoload_func中
spl_autoload_unregister表示注銷autoload_func中指定的類
通過以上兩個函數,我們就可以使用php自帶的autoload_func進行自動載入類管理,而不必手動書寫__autoload()類,而且效率會更高,是當前比較流行的一種自動載入使用趨勢。

閱讀全文

與php類庫的載入相關的資料

熱點內容
黑鯊相冊是哪個文件夾 瀏覽:637
網頁聯機游戲源碼 瀏覽:570
程序員談判技巧 瀏覽:445
大叔做了程序員做夢都想做的事 瀏覽:830
c語言中經典演算法 瀏覽:639
程序員小白表白 瀏覽:357
matlab編程二階微分 瀏覽:660
批量建文件夾並命名視頻 瀏覽:614
如何訪問美國伺服器快 瀏覽:522
推薦單片機框架書籍 瀏覽:84
4g69壓縮比 瀏覽:165
像素風圖片壓縮 瀏覽:869
php接收參數函數 瀏覽:719
windows終端命令提示 瀏覽:60
pythonweb增刪改查 瀏覽:739
汽車壓縮壓力差怎麼辦 瀏覽:735
程序員發自己照片 瀏覽:1000
php上傳圖片ftp 瀏覽:445
java程序員出國 瀏覽:147
角色朝向演算法游戲 瀏覽:417