Thinkphp 框架擴充功能之類庫擴充操作詳解
##本文實例講述了Thinkphp 框架擴展之類庫擴展操作。分享給大家供大家參考,具體如下:這篇文章主要介紹了Thinkphp 框架擴展之類庫擴展操作,結合實例形式分析了Thinkphp 類別庫擴展的相關原理、實現方法與操作注意事項,需要的朋友可以參考下
庫類別擴充
ThinkPHP的類別庫主要包括公共類別庫和應用程式類別庫,都是基於命名空間進行定義和擴展的。只要依照規範定義,都可以實現自動載入。公共庫類別
公共類別庫通常是指ThinkPHP/Library目錄下面的類別庫,例如:Think目錄:系統核心類別庫這些目錄下面的類別庫都可以自動加載,你只要把相應的類別庫放入目錄中,然後添加或者修改命名空間定義。你可以在Org/Util/目錄下面新增一個Image.class.php 文件,然後新增命名空間如下:Org目錄:第三方公共類別庫
namespace Org\Util; class Image { }這樣,就可以用下面的方式直接實例化Image類別了:
$image = new \Org\Util\Image;除了這些目錄之外,你完全可以在ThinkPHP/Library目錄下面添加自己的類別庫目錄,例如,我們添加一個Com目錄用於企業類別庫擴展:Com\Sina\App類別(位於Com/Sina/App.class.php )
namespace Com\Sina; class App { }Com\Sina\Rank類別(位於Com/Sina/Rank.class.php)
namespace Com\Sina; class Rank { }公共類別庫除了在系統的Library目錄之外,還可以自訂其他的命名空間,我們只需要註冊一個新的命名空間,在應用程式或模組設定檔中加入下面的設定參數:
'AUTOLOAD_NAMESPACE' => array( 'Lib' => APP_PATH.'Lib', )我們在應用程式目錄下面建立了一個Lib目錄用於放置公共的Lib擴展,如果我們要把上面兩個類別庫放到Lib\Sina目錄下面,只需要調整為:Lib\Sina\App類別(位於Lib/Sina/App.class.php )
namespace Lib\Sina; class App { }Lib\Sina\Rank類別(位於Lib/Sina/Rank.class.php)
namespace Lib\Sina; class Rank { }如果你的類別庫沒有採用命名空間的話,需要使用import方法先載入類別庫文件,然後再進行實例化,例如: 我們定義了一個Counter類別(位於Com/Sina/Util/Counter.class.php):
class Counter { }在使用的時候,需要按下面方式呼叫:
import('Com.Sina.Util.Couter'); $object = new \Counter();應用類別庫應用程式類別庫通常是在應用程式或模組目錄下面的類別庫,應用類別庫的命名空間一般就是模組的名稱為根命名空間,例如: Home\Model\UserModel類別(位於Application\Home\Model)namespace Home\Model;#use Think\Model;class UserModel extends Model{}Common\Util\Pay類別(位於Application\Common\Util)
namespace Common\Util; class Pay { }Admin\Api\UserApi類別(位於Application\ Admin\Api)
namespace Admin\Api; use Think\Model; class UserApi extends Model{ }
記住一個原則,命名空間的路徑和實際的檔案路徑對應的話就可以實現直接實例化的時候自動載入。推薦教學:《
PHP影片教學》
以上是Thinkphp 框架擴充之類函式庫擴充操作解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!