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();
  • 相关阅读:
    Java并发编程:同步容器
    Java并发编程:深入剖析ThreadLocal
    使用jQuery开发一个响应式超酷整合RSS信息阅读杂志
    Javascript 严格模式
    参数传递的四种形式----- URL,超链接,js,form表单
    《CSS 设计指南》学习笔记 一
    【BootStrap】初步教程
    JavaScript日期对象使用总结
    Web前端知识技能大汇总
    浏览器 CSS Hack 收集
  • 原文地址:https://www.cnblogs.com/achengmu/p/3158860.html
Copyright © 2011-2022 走看看