您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)ThinkPHP中文件的加載方式有哪些,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
ThinkPHP中系統(tǒng)提供了三個文件加載方式:
函數(shù)庫形式加載:
函數(shù)庫再ThinkPHP中包括三類:系統(tǒng)函數(shù)庫文件(functions.php)、應(yīng)用級別函數(shù)庫文件、分組級別函數(shù)文件。
這三類函數(shù)庫文件只有系統(tǒng)函數(shù)庫文件(functions.php)是系統(tǒng)默認存在的,而另外兩類函數(shù)庫形式需要自行創(chuàng)建。
同時要注意,只有系統(tǒng)函數(shù)庫文件名為functions.php,而另外兩類函數(shù)庫形式文件名叫做function.php。
案例:使用函數(shù)庫形式定義需要使用的函數(shù)。函數(shù)名:testfunction
<?php function testfunction(){ echo 'testfunction'; } public function test(){ testfunction(); }
展示結(jié)果:
定義好的函數(shù)庫文件中的函數(shù),在使用的時候遵循php內(nèi)置函數(shù)語法的要求,直接寫上函數(shù)名(參數(shù))就可以了。
說明:
第一:不需要引入function.php,系統(tǒng)在執(zhí)行的時候自動幫我們引入了文件function.php文件;
第二:如果函數(shù)定義在應(yīng)用級別的函數(shù)庫文件中,則能在全部的分組(整個應(yīng)用)使用;如果函數(shù)定義在某個分組的函數(shù)庫文件中,則只能在當(dāng)前的分組中使用,否則會報函數(shù)未定義。
通過配置項動態(tài)加載:
在系統(tǒng)的執(zhí)行流程中有 一個文件會被執(zhí)行到App.class.php
static public function init() { // 加載動態(tài)應(yīng)用公共文件和配置 load_ext_file(COMMON_PATH);
在該方法中執(zhí)行了一個load_ext_file函數(shù)。
該方法并不是php內(nèi)置的方法,而是在系統(tǒng)函數(shù)庫文件中定義的:
function load_ext_file($path) { // 加載自定義外部文件 if($files = C('LOAD_EXT_FILE')) { $files = explode(',',$files); foreach ($files as $file){ $file = $path.'Common/'.$file.'.php'; if(is_file($file)) include $file; } }
擴展:C方法
C方法也是快速方法之一,其作用是操作ThinkPHP中的配置項:
C(name,value); 設(shè)置配置項name的值,值是value
C(name); 讀取配置項name的值
C(); 讀取全部的配置項
配置項:
在應(yīng)用級別的配置文件中定義配置項LOAD_EXT_FILE,引入文件info.php。
'load_ext_file' => 'info', //包含文件名的字符串,多個文件名通過使用英文半角逗號分割
在應(yīng)用函數(shù)庫文件目錄中定義一個info.php
<?php function getInfo(){ phpinfo(); }
測試:
public function test(){ getInfo(); }
展示結(jié)果:
上述需要注意的是,同樣文件在系統(tǒng)封裝的方法中已經(jīng)進行了引入,所以在使用具體的函數(shù)的時候不需要再對文件進行單獨的引入,只需要像使用函數(shù)庫文件的形式直接編寫需要使用的函數(shù)名即傳遞相應(yīng)的參數(shù)即可。
通過load方法加載
語法:
load(‘@/不帶后綴的php文件名’);
需要注意的是,文件必須存在于分組級別的函數(shù)庫目錄中,并且只能用于定義的分組中。
案例:通過自己在分組目錄中創(chuàng)建文件hello.php,然后在其中定義一個函數(shù),然后再去使用load方法加載并且使用其中的函數(shù)。
<?php function sayhello($who){ echo 'hello ' . $who; }
在控制器中使用load方法加載hello.php文件:
public function test(){ //load load('@/hello'); //調(diào)用函數(shù) sayhello(world); }
展示效果:
說明:上述三個文件的加載方式在實際開發(fā)的時候都可以使用,但是一般以第一種為主(通過函數(shù)庫形式自動加載)。
關(guān)于“ThinkPHP中文件的加載方式有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。