zoukankan      html  css  js  c++  java
  • ZendFramework中实现自动加载models

    最近自学Zendframework中,写Controller的时候总要require model下的类文件,然后才能实例化,感觉非常不爽

    Google了许久,找到个明白人写的方法不错,主要就是修改application下的Bootstrap.php文件

    全部代码如下:

     1 <?php
     2 
     3 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
     4 
     5 {
     6 
     7     //重新定义资源自动加载器
     8 
     9     protected function _initAutoload()
    10 
    11     {
    12 
    13         $moduleLoader=new Zend_Application_Module_Autoloader(array('namespace'=>'','basePath'=>APPLICATION_PATH));
    14 
    15         /* 实现自动加载Models下的类 */
    16 
    17         $autoloader = Zend_Loader_Autoloader::getInstance();
    18 
    19         $autoloader->setFallbackAutoloader(true);
    20 
    21         return $moduleLoader;
    22 
    23     }
    24 
    25 }

    关键代码就是$autoloader的那两行,原有的Bootstrap.php中是没有的,加上就好了。

    然后修改public/index.php文件,找到其中set_include_path一行,修改如下

    1 set_include_path(implode(PATH_SEPARATOR, array(realpath(APPLICATION_PATH . '/../library'), get_include_path(),realpath(APPLICATION_PATH . '/models'))));

    比如说现在我在models中写了个类文件叫Nav.php

     1 <?php
     2 
     3 class Nav  {
     4 
     5     public static function getNav() {
     6 
     7         return array(
     8 
     9                         array("nav" => "单篇文章" , "href" => "./single"),
    10 
    11                         array("nav" => "多篇文章" , "href" => "./multi"),
    12 
    13                     );
    14 
    15     }
    16 
    17 }

    然后在IndexController中直接用下面代码就能获得返回值了~

    1 Nav::getNav();
  • 相关阅读:
    用colorWithPatternImage设置view背景色太占内存,替代方法
    快捷键
    数组里面放入随机数
    Android图像处理之Bitmap类
    android屏幕适配_
    最火的Android开源项目
    boost 编译
    QTextEdit更改单个段落/块的字体
    自定义QMenu样式
    Qimage QBuffer
  • 原文地址:https://www.cnblogs.com/achengmu/p/3158860.html
Copyright © 2011-2022 走看看