亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkphp中的import怎么用

發布時間:2022-04-18 17:34:12 來源:億速云 閱讀:133 作者:zzz 欄目:編程語言

這篇“thinkphp中的import怎么用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“thinkphp中的import怎么用”文章吧。

在thinkphp中,import方法用于類庫導入的封裝實現,可以對項目類庫、擴展類庫和第三方類庫提供導入支持,語法為“import('類庫名', '起始路徑', '類庫后綴')”;該方法有個別名vendor方法,專門用于導入第三方類庫。

本文操作環境:Windows10系統、ThinkPHP3.2版、Dell G3電腦。

thinkphp中import的用法是什么

import方法是ThinkPHP框架用于類庫導入的封裝實現,尤其對于項目類庫、擴展類庫和第三方類庫的導入支持,import方法早期的版本可以和java的import方法一樣導入目錄和通配符導入,后來考慮到性能問題,在后續的版本更新中不斷改進和簡化了,所以現在的用法比較簡單明了。調用格式:

import('類庫名', '起始路徑', '類庫后綴')

imprt方法有一個別名vendor方法,專門用于導入第三方類庫,區別在于起始路徑和類庫后綴默認值不同。

我們來分析下具體的用法:

1.導入系統基類庫

系統基類庫其實就是指的Think類庫包,所在目錄就是指框架的核心Lib目錄,import方法可以用于導入系統基類庫,例如:

import('Think.Util.Array');

表示導入系統目錄下面的Lib/Util/Array.class.php 類庫文件,相當于我們這樣使用

require THINK_PATH.'Lib/Util/Array.class.php';

可以支持多級目錄,例如:

import('Think.Util.U1.ClassA');
import('Think.Util.U1.A2.ClassB');

通過import方法導入類庫后,就可以進行類庫的實例化操作了。

2.導入擴展類庫

擴展類庫位于Extend/Library目錄下面,這是系統的公共擴展類庫目錄,目前支持的擴展類庫包只有ORG和Com包。

import('ORG.Util.Image');
import('Com.Sina.OAuth');

會導入擴展目錄下面的第三方類庫(分別是Extend/Library/ORG/Util/Image.class.php和Extend/Library/Com/Sina/OAuth.class.php 類庫文件),第三方類庫包只能支持ORG和Com兩種,下面的子目錄可以隨意添加。

3.導入項目應用類庫

如果沒有指定起始導入路徑的話,類庫包Think、ORG、Com之外的都會被認為是導入項目應用類庫,例如:

import("MyApp.Action.UserAction");
import("MyApp.Model.InfoModel");

表示導入MyApp項目的UserAction和InfoModel類庫文件,由于通常,我們都是導入當前項目下面的類庫,所以可以簡寫成:

import("@.Action.UserAction");
import("@.Model.InfoModel");

@符號表示導入當前項目下面的類庫,這種方式也一定程度上方便了項目類庫的代碼移植,如果項目名稱改變或者移動到其它項目下面的時候,寫法不需要改變。

4.導入非標準類庫文件

這里所說的非標準類庫文件,主要是指位于特殊位置或者非.class.php后綴的類庫文件。像導入基類庫、擴展類庫和項目類庫都是基于框架規范的目錄下面,如果我們需要導入項目的Common目錄下面的MyClass.php文件,則可以采用:

import('Common.MyClass',APP_PATH,'.php');

或者

import('MyClass',APP_PATH.'Common','.php');

或者要導入當前目錄下面的RBAC類庫

import("RBAC.AccessDecisionManager",dirname(__FILE__),".php");

還有一種特殊情況,是類庫命名的特殊性。按照系統的規則,import方法是無法導入具有點號的類庫文件的,因為點號會直接轉化成斜線,例如我們定義了一個名稱為User.Info.class.php 的文件的話,采用:

import("ORG.User.Info");

方式加載的話就會出現錯誤,導致加載的文件不是ORG/User.Info.class.php 文件,而是ORG/User/Info.class.php 文件,這種情況下,我們可以使用:

import("ORG.User#Info");

來導入。

5.第三方類庫導入

ThinkPHP 的基類庫都是以.class.php 為后綴的,這是系統內置的一個約定,當然也可以通過 import 的參數來控制, 為了更加方便引入其他框架和系統的類庫, 系統還提供了一個import方法的別名vendor,專門用于導入第三方類庫,并且默認的起始目錄和類文件后綴有區別。第三方類庫位于系統擴展目錄下的Vendor 目錄, 例如,我們把 Zend 的 Filter\Dir.php 放到 Vendor 目錄下面,這個時候 Dir 文件的路徑就是 Vendor\Zend\Filter\Dir.php,我們使用vendor 方法導入只需要使用:

Vendor('Zend.Filter.Dir');

就可以導入Dir類庫了。

Vendor方法也可以支持和import方法一樣的基礎路徑和文件名后綴參數,例如:

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

6.別名導入

除了命名空間的導入方式外,import方法還可以支持別名導入,要使用別名導入,首先要定義別名,我們可以在項目配置目錄下面增加alias.php 用以定義項目中需要用到的類庫別名,例如:

return array(
  'rbac' =>LIB_PATH.'Common/Rbac.class.php',
  'page' =>LIB_PATH.'Common/Page.class.php',
 );

那么,現在就可以直接使用:

import("rbac");
import("page");

導入Rbac和Page類,別名導入方式禁止使用import方法的第二和第三個參數,別名導入方式的效率比命名空間導入方式要高效,缺點是需要預先定義相關別名。

可以為某些需要的類庫定義別名,那么無需定義自動加載路徑也可以快速的自動加載。

一般情況下,由于框架內部采用了自動加載方式,所以大多數情況下面不需要用戶手動導入類庫文件,通常用于導入擴展類庫和第三方類庫的情況居多。而且配合別名定義和自動加載路徑的定義,也能減少用戶手動導入類庫的情況。

以上就是關于“thinkphp中的import怎么用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镶黄旗| 上林县| 睢宁县| 天柱县| 秦皇岛市| 海兴县| 黄骅市| 崇文区| 昌黎县| 灵武市| 镇远县| 郑州市| 南安市| 宜兰市| 通许县| 高阳县| 山东省| 合水县| 来安县| 景泰县| 禹城市| 珠海市| 碌曲县| 张家川| 美姑县| 峨眉山市| 德钦县| 玉屏| 勐海县| 巴中市| 望城县| 临朐县| 金华市| 苏尼特左旗| 社旗县| 望奎县| 仁布县| 巩义市| 九龙城区| 汶川县| 玉环县|