亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

Zend Framework自動加載類的實現方法

2020-03-22 19:56:31
字體:
來源:轉載
供稿:網友
  • Zend Framework中實現自動加載類。網上查了很多,有好幾種。本文收集了常用的3種,

    第一種如下:

    E0FD4B173A4E45AA9F26C3AFC6D84587

    方法很簡單,舉例說明。比如想要在models目錄下的類可以自動加載。

    先在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文件下,實現一個資源方法。


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

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

    <?php html' target='_blank'>class Nav  { public static function getNav() {    echo "pfpf"; } } ?>

    在某個controller中,直接使用Nav類。

    Nav::getNav();

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

    412A0F3703C3416683E6FAB52D3C637A

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


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

    默認的,index.php中已經包含了 realpath(APPLICATION_PATH . '/../library')這個路徑,即可以直接把類放到這個文件夾中,既可以實現自動加載。

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

    E4A273299421470DA005954200E29941

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


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

    然后就可以直接調用My_Book類和_Pen類了。

    My_Book::show();

    _Pen::show();

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


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

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

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


            protected function _initAutoload() {             $loader = new Zend_Loader_Autoloader_Resource(array( 'basePath'  => APPLICATION_PATH ,//這里指定任何路徑,指定路徑后就在這個路徑下找 'namespace' => 'Foo',//這里的命名空間值的是類的前綴,比如這個就是類的前綴是Foo_開頭的。             ));             $loader->addResourceType('wwww', 'models', 'Modelxxx');//這個方法三個參數,分別是資源類型(貌似可以隨便填),路徑,子命名空間                //下面是源碼中對于這3個參數的說明                /**      * 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      */}

    例如上面的例子,它會在APPLICATION_PATH/models/目錄下,自動加載Foo_Modelxxx_這樣的類。

    具體看下面的例子,目錄結構圖如下:

    ADN0FC$CI[_JCYVGZN(D)F1

    那現在的目標是能夠自動加載沒有folder中的類。

    對應的,第一步,指定好自動加載的basepath,即'basePath' => APPLICATION_PATH.'/myfolder',指定一個命名空間Myns。

    注意命名空間的首字母大寫,不然報錯。

    接著,加載資源類型,指定更細節的路徑和命名空間。

    所有的代碼如下:


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

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

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

    具體如下:


    <?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>";     } } ?>

    然后調用的是直接

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

    就可以了。

    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    国产成人午夜视频网址| 国产精品99蜜臀久久不卡二区| 国产精品美乳一区二区免费| 国产欧美韩国高清| 亚洲成人av资源网| 精品色蜜蜜精品视频在线观看| 亚洲v日韩v综合v精品v| 亚洲码在线观看| 精品视频在线播放| 国产成人啪精品视频免费网| 麻豆一区二区在线观看| 欧美日韩国产成人在线| 国产专区欧美专区| 国产精品视频一区二区三区四| 欧美极品在线视频| 亚洲欧美综合区自拍另类| 亚洲国产女人aaa毛片在线| 中文字幕久久久| 欧美精品videosex极品1| 日本老师69xxx| 亚洲bt欧美bt日本bt| 中文字幕无线精品亚洲乱码一区| 日韩福利在线播放| 92国产精品视频| 亚洲精品一区av在线播放| 亚洲视频网站在线观看| 国产日韩欧美成人| 国产欧美日韩最新| 欧美视频在线观看免费| 国产精品永久在线| 国产成人极品视频| 亚洲精品短视频| 亚洲激情视频在线播放| 国产午夜一区二区| 国产欧美在线观看| 久久成年人免费电影| 欧美日韩成人在线播放| 国产z一区二区三区| 亚洲视频axxx| 北条麻妃99精品青青久久| 青青草成人在线| 亚洲天堂av高清| 国产精品美女视频网站| 欧美一性一乱一交一视频| 26uuu亚洲国产精品| 欧美午夜性色大片在线观看| 国产精品福利网| 午夜美女久久久久爽久久| 91成人精品网站| 欧美国产日韩一区二区三区| 欧洲亚洲女同hd| 国产精品视频网| 91日本在线观看| 久久久精品日本| 欧美成人精品不卡视频在线观看| 国产精品久久久久久久久久三级| 国产精品亚洲自拍| 日韩av有码在线| 日韩精品免费在线| 国产精品久久久久久久久男| 亚洲成人av片在线观看| 最近中文字幕2019免费| 久久午夜a级毛片| 日韩精品视频观看| 欧美俄罗斯性视频| 青草热久免费精品视频| 91国产精品91| 久久精品这里热有精品| 国产精品网红福利| 国内精品一区二区三区| 日韩一区二区av| 亚洲男人第一av网站| 久色乳综合思思在线视频| 日韩av123| 美女av一区二区| 精品国产一区二区在线| 亚洲成人精品久久| 国产aⅴ夜夜欢一区二区三区| 欧美性猛交xxxx乱大交3| 久久久噜久噜久久综合| 欧美在线激情视频| 亚洲人成自拍网站| 精品美女国产在线| 91精品在线一区| 国产主播精品在线| 国产一区二区美女视频| 国产91网红主播在线观看| 亚洲免费成人av电影| 国产精品电影久久久久电影网| 欧美精品激情视频| 欧美黑人极品猛少妇色xxxxx| 亚洲乱码国产乱码精品精| 成人xvideos免费视频| 久久夜精品香蕉| 国产成人亚洲综合91| 亚洲精品国精品久久99热一| 欧美高跟鞋交xxxxhd| 欧美在线视频免费| 色诱女教师一区二区三区| 夜色77av精品影院| 亚洲欧美成人精品| 国产成人精品999| 国产a∨精品一区二区三区不卡| 欧美三级免费观看| 欧日韩不卡在线视频| 欧美日韩免费看| 欧美一区二区三区精品电影| 亚洲国产精品久久久久秋霞不卡| 国产精品亚洲视频在线观看| 欧美一级电影在线| 色偷偷噜噜噜亚洲男人的天堂| 国外日韩电影在线观看| 日韩久久精品电影| 欧美精品成人91久久久久久久| 亚洲xxxx3d| 黑人巨大精品欧美一区二区免费| 91在线视频导航| 日韩麻豆第一页| 日韩免费高清在线观看| 久久99精品久久久久久青青91| 久久久亚洲网站| 日韩av影片在线观看| 久久这里有精品视频| 日韩成人av网址| 亚洲一区二区三区四区在线播放| 中文字幕v亚洲ⅴv天堂| 亚洲jizzjizz日本少妇| 欧美性猛交xxxx乱大交极品| 中文字幕亚洲综合久久筱田步美| 亚洲精品免费一区二区三区| 亚洲免费精彩视频| 亚洲三级免费看| 久久久久久69| 欧美高清第一页| 在线播放国产一区中文字幕剧情欧美| 亚洲激情视频网| 亚洲区中文字幕| 精品日韩中文字幕| 国产999视频| 久久久久久久久久国产| 欧美日韩第一视频| 久久久久日韩精品久久久男男| 国产不卡av在线免费观看| 欧美日韩中文字幕综合视频| 国内自拍欧美激情| 日韩最新中文字幕电影免费看| 亚洲成人激情小说| 国产一区私人高清影院| 日韩精品在线视频| 韩国三级日本三级少妇99| 久久久久中文字幕| 久久综合伊人77777蜜臀| 国产日韩精品综合网站| 在线视频中文亚洲| 欧美日韩一区二区在线| 欧美电影《睫毛膏》| 亚洲尤物视频网| 久久久人成影片一区二区三区观看| 国产精品久久久久久久久影视| 色综合久综合久久综合久鬼88| 国产精品一香蕉国产线看观看| 高清欧美一区二区三区| 91成人国产在线观看| 亚洲图片欧美午夜|