日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Zend Framework 自动加载类的实现方法

發(fā)布時(shí)間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Zend Framework 自动加载类的实现方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Zend Framework中實(shí)現(xiàn)自動(dòng)加載類。網(wǎng)上查了很多,有好幾種。本文收集了常用的3種,

第一種如下:

方法很簡(jiǎn)單,舉例說明。比如想要在models目錄下的類可以自動(dòng)加載。

先在index.php中修改include path。

// Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, array(realpath(APPLICATION_PATH . '/../library'),get_include_path(),realpath(APPLICATION_PATH . '/models') )));

上述代碼里,添加包含了models的目錄。

然后在Bootstrap.php文件下,實(shí)現(xiàn)一個(gè)資源方法。

protected function _initAutoload() {$autoloader = Zend_Loader_Autoloader::getInstance();$autoloader->setFallbackAutoloader(true); }

然后在models里可以加一個(gè)類。注意文件名和類名的關(guān)系(類名要加上路徑名,用_隔開。下有示例),不然自動(dòng)加載會(huì)失敗。比如加一個(gè)Nav.php的文件。內(nèi)容如下:

<?php class Nav { public static function getNav() {echo "pfpf"; } } ?>

在某個(gè)controller中,直接使用Nav類。

Nav::getNav();

如果models中需要加文件夾,那么相應(yīng)的類名也要有更改。舉例:

在models下有新建一個(gè)newFolder文件夾,在該文件夾下面新建一個(gè)文件MKA,那么這個(gè)文件中的類名就應(yīng)該是newFolder_MKA這種約定。

<?php class newFolder_MKA { public static function getNav() { echo "<br>MKA"; } } ?>

默認(rèn)的,index.php中已經(jīng)包含了 realpath(APPLICATION_PATH . '/../library')這個(gè)路徑,即可以直接把類放到這個(gè)文件夾中,既可以實(shí)現(xiàn)自動(dòng)加載。

————————————————————————————————————————————————

還有一種方法,和上述方法類似,只不過在資源方法中實(shí)現(xiàn)注冊(cè)命名空間(這里命名空間的概念和C#中命名空間概念不太一樣,這里指的是類名前面的前綴和包含類的文件夾)。假設(shè)要自動(dòng)加載的類在library中,默認(rèn)的index.php中的includepath已經(jīng)包含了。

那么這些類名也要按約定加上命名空間前綴,在My目錄下的加上My_,沒有目錄的就加_。這樣的話,資源方法中只需注冊(cè)一下命名空間就行了。

protected function _initAutoload () {Zend_Loader_Autoloader::getInstance()->registerNamespace('My_')->registerNamespace('_'); }

然后就可以直接調(diào)用My_Book類和_Pen類了。

My_Book::show();

_Pen::show();

甚至,你也不需要在資源方法中加代碼,只需在配置文件application.ini中加入如下指令即可:

autoloaderNamespaces[] = "My_" autoloaderNamespaces[] = "_"

————————————————————————————————————————————————

還有一種方法 ,采用Zend_Loader_Autoloader_Resource類。

看例子,在Bootstrap.php文件下,寫一個(gè)資源方法。

protected function _initAutoload() {$loader = new Zend_Loader_Autoloader_Resource(array( 'basePath' => APPLICATION_PATH ,//這里指定任何路徑,指定路徑后就在這個(gè)路徑下找 'namespace' => 'Foo',//這里的命名空間值的是類的前綴,比如這個(gè)就是類的前綴是Foo_開頭的。));$loader->addResourceType('wwww', 'models', 'Modelxxx');//這個(gè)方法三個(gè)參數(shù),分別是資源類型(貌似可以隨便填),路徑,子命名空間//下面是源碼中對(duì)于這3個(gè)參數(shù)的說明/*** Add resource type** @param string $type identifier for the resource type being loaded* @param string $path path relative to resource base path containing the resource types* @param null|string $namespace sub-component namespace to append to base namespace that qualifies this resource type* @return Zend_Loader_Autoloader_Resource*/ }

例如上面的例子,它會(huì)在APPLICATION_PATH\models\目錄下,自動(dòng)加載Foo_Modelxxx_這樣的類。

具體看下面的例子,目錄結(jié)構(gòu)圖如下:

那現(xiàn)在的目標(biāo)是能夠自動(dòng)加載沒有folder中的類。

對(duì)應(yīng)的,第一步,指定好自動(dòng)加載的basepath,即'basePath' => APPLICATION_PATH.'/myfolder',指定一個(gè)命名空間Myns。

注意命名空間的首字母大寫,不然報(bào)錯(cuò)。

接著,加載資源類型,指定更細(xì)節(jié)的路徑和命名空間。

所有的代碼如下:

protected function _initAutoload() {$loader = new Zend_Loader_Autoloader_Resource(array( 'basePath' => APPLICATION_PATH.'/myfolder', 'namespace' => 'Myns'));$loader->addResourceType('mytype', '/', 'Mysubns')->addResourceType('mytype2', 'mysubfolder', 'Mysubns2'); }

其中注意命名空間首字母大寫,路徑要指對(duì),然后具體的類名要符合響應(yīng)的規(guī)則。比如例子中的類名的格式就是

命名空間_子命名空間_類名的格式。

具體如下:

<?php class Myns_Mysubns2_Myclass2 {public static function show(){ echo "myns_mysubns2_myclass2","<br>";} }?><?php class Myns_Mysubns_Myclass {public static function show(){ echo "myns_mysubns_myclass","<br>";} } ?>

然后調(diào)用的是直接

Myns_Mysubns_Myclass::show(); Myns_Mysubns2_Myclass2::show();

就可以了。

總結(jié)

以上是生活随笔為你收集整理的Zend Framework 自动加载类的实现方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产在线久 | 6680新视觉电影免费观看 | 在线国产欧美 | 青青视频免费观看 | 国产精品精品 | 亚洲激情国产 | 97久久精品 | 少妇肥臀大白屁股高清 | 猎艳山村丰满少妇 | 91喷水视频 | 护士的小嫩嫩好紧好爽 | 天天爽天天爱 | 日韩成人激情 | 高清免费视频日本 | 韩国美女主播跳舞 | 极品色av影院 | 中出亚洲 | 国产视频一区在线观看 | 456亚洲影视 | 深夜福利视频导航 | 黄色第一网站 | 欧美在线免费视频 | 国产成人无码性教育视频 | 国产一区免费 | 老司机综合网 | 日韩在线一二 | 国产99热 | 欧美一级录像 | 久久亚洲国产成人精品性色 | 久久电影一区 | 精品国产一区二区不卡 | 深夜在线观看 | 日韩精品一区二区电影 | 国产精品乱码久久久久 | 色婷婷av一区二区三 | 午夜免费看视频 | 99re色| 在线观看成人小视频 | 九九久久精品视频 | 少妇高潮一区二区三区99小说 | 色在线免费视频 | 俺来也俺也啪www色 欧洲一区二区视频 | 丝袜美腿亚洲一区二区图片 | jizz成熟丰满老女人 | 国产精品毛片久久久久久久 | 成人拍拍| 欧美一级电影在线 | av免费国产 | 亚洲精品人人 | 婷婷丁香激情五月 | 欧美一区二区视频免费观看 | 日韩电影一区二区 | 久久超碰精品 | 久久视频精品 | 国产精品国产一区二区三区四区 | 波多野结衣视频播放 | 欧美日本韩国一区二区三区 | 法国少妇愉情理伦片 | 99视频国产精品 | 狠狠躁18三区二区一区 | 中文字幕一区二区在线播放 | 亚洲精久久 | 婷婷中文 | 亚洲性图第一页 | 午夜免费网 | 91福利视频在线观看 | 国产精品av一区 | 精品久久久久久无码国产 | 国产一区二区视频在线免费观看 | 欧美嫩草影院 | 久久六| 午夜剧场91 | 久久在现 | 久久国产激情 | 国产成人影视 | 狠狠cao日日穞夜夜穞av | 国产精品久久久久久亚洲 | 国产精品久久久久久三级 | 交专区videossex农村 | 国产欧美日韩一区 | 欧洲-级毛片内射 | 日本天堂在线播放 | 亚洲欧美网站 | 欧美 国产 日本 | 91精品人妻一区二区三区四区 | 暖暖免费观看日本版 | 熟女毛片 | 中文字幕1区 | 成年人黄色一级片 | 人妻熟人中文字幕一区二区 | 国产99久久 | 久久五月综合 | 亚洲成人午夜影院 | 久久a视频 | 毛片导航 | 欧美精品一区二区三 | 免费大片黄在线观看 | 中国少妇色 | 一二区精品 |