您好,登錄后才能下訂單哦!
Zend Framework中怎么利用Zend_Loader組件動(dòng)態(tài)加載文件,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
加載文件
Zend_Loader組件可以實(shí)現(xiàn)對(duì)文件的加載功能,還可以判斷文件是否可讀。
這兩個(gè)功能分別由Zend_loader::loadFile()方法與Zend_loader::isReadable()方法來實(shí)現(xiàn)。
動(dòng)態(tài)加載是可以將變量所指代的文件進(jìn)行加載的過程。當(dāng)需要加載的文件為用戶輸入或是某個(gè)方法的參數(shù)時(shí),通過傳統(tǒng)的加載方法會(huì)很難對(duì)文件進(jìn)行加載。
通過動(dòng)態(tài)加載則可以實(shí)現(xiàn)這一過程。
示例:
首先建立被加載的文檔temp.php,該文檔只實(shí)現(xiàn)一個(gè)簡單的輸出功能,代碼如下。
<?php echo "Hello World!"; ?>
主程序:
<?php require_once("Zend/Loader.php"); $filename = 'temp.php'; Zend_Loader::loadFile($filename);
執(zhí)行結(jié)果:
Hello World!
說明文件已經(jīng)被成功的加載進(jìn)來了。
判斷文件屬性
語法格式:
Zend_Loader::isReadable($filename)
如果文件可讀,程序?qū)⒎祷豑rue
該方法是由PHP函數(shù)is_readable()封裝而成的,但二者還是存在不同之處。is_readable()方法
不會(huì)自動(dòng)查找include_path目錄下的文件,而Zend::isReadable()方法則可以。
示例:
<?php require_once("Zend/Loader.php"); $filename = 'temp.php'; if(Zend_Loader::isReadable($filename)){ echo "文件".$filename."是可讀的!"; }else{ echo "文件".$filename."不可讀!"; } echo "<p/>"; if(is_readable('Zend/Date.php')){ echo "include_path下文件可讀"; }else{ echo "include_path下文件不可讀"; } echo "<p/>"; if(Zend_Loader::isReadable('Zend/Date.php')){ echo "include_path下文件可讀"; }else{ echo "include_path下文件不可讀"; }
結(jié)果:
文件temp.php是可讀的! include_path下文件不可讀 include_path下文件可讀
這個(gè)例子說明,is_readable()方法不可以判斷include_path文件是否可讀,而Zend_Loader::isReadable()方法可以判斷。include_path文件,指的是php.ini中配置引入的文件。
不僅如此,Zend_Loader還可以進(jìn)行類的加載。這將在下面進(jìn)行講解。
動(dòng)態(tài)加載類
Zend_Loader不僅可以動(dòng)態(tài)加載文件,通過其loadClass()方法還可以實(shí)現(xiàn)。
語法:
Zend_Loader::loadClass($class,$dirs)
其中,class為指定的類名,class為指定的類名,dirs為包含類的文件所在的路徑及文件名。類名將會(huì)根據(jù)下劃線對(duì)應(yīng)到相應(yīng)目錄下的
PHP文件,如Zend_Controller_Action會(huì)指向Zend/Controller/Action.php。
如果參數(shù)$dirs是一個(gè)字符串或數(shù)組,則該方法會(huì)根據(jù)順序查找相應(yīng)目錄,并加裝第一個(gè)匹配的文件。如果文件不存在,該方法還會(huì)到include_path指定的目錄下進(jìn)行查找。
示例:
<?php require_once("Zend/Loader.php"); Zend_Loader::loadClass('Zend_Date'); $date = new Zend_Date(); echo $date;
結(jié)果:
2013-3-18 下午05:30:16
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。