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

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

全部代码如下:

 <?php

 class Bootstrap extends Zend_Application_Bootstrap_Bootstrap

 {

     //重新定义资源自动加载器

     protected function _initAutoload()

     {

         $moduleLoader=new Zend_Application_Module_Autoloader(array('namespace'=>'','basePath'=>APPLICATION_PATH));

         /* 实现自动加载Models下的类 */

         $autoloader = Zend_Loader_Autoloader::getInstance();

         $autoloader->setFallbackAutoloader(true);

         return $moduleLoader;

     }

 }

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

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

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

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

 <?php

 class Nav  {

     public static function getNav() {

         return array(

                         array("nav" => "单篇文章" , "href" => "./single"),

                         array("nav" => "多篇文章" , "href" => "./multi"),

                     );

     }

 }

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

 Nav::getNav();

ZendFramework中实现自动加载models的更多相关文章

  1. autocad2008+C#2008开发中设置自动加载dll

    一.复制编译后的dlll路径,比如我的是D:\zjy\cad开发\学习\宗地图\bin\Debug\zd.dll 二.随便找个地方新建一个记事本,在记事本中写入以下内容: (command " ...

  2. PHP中的自动加载

      自动加载? 或许你已经对自动加载有所了解.简单描述一下:自动加载就是我们在new一个class的时候,不需要手动去写require来导入这个class.php文件,程序自动帮我们加载导入进来.这是 ...

  3. [PHP] 项目实践中的自动加载实现

    1.使用spl_autoload_register函数注册一个自己定义的自动加载函数2.当在代码中new一个不存在的类的时候,上面的函数会被调用,不存在的类名会被作为参数传入该函数中3.兼容了两种方式 ...

  4. 关于thinkPHP中的自动加载和手动导入

    首先先讲自动加载: 前提:你的第三方类库要满足(1)符合命名规范和后缀的类库(2)使用命名空间,命名空间和路径一致的类库 (1)在ThinkPHP目录下的library目录下的每一个子目录都是一个根命 ...

  5. 在Thinkphp中【自动加载自定义扩展配置文件】!

    /Conf/config.php为正式的扩展文件 /Conf/verify.php为扩展的自定义配置文件 /Conf/sendmail.php为扩展的自定义配置文件 如果要自动加载 verify和se ...

  6. CI关于自动加载

    /application/config/autoload.php文件中定义自动加载的包.类库.helper.用户配置文件.语言文件.模块 类库会到/application/libraries目录或/s ...

  7. PHP 命名空间以及自动加载(自动调用的函数,来include文件)

    这篇文章的目的是记录 1. php中的自动加载函数 __autoload(), 和 spl_autoload_register()函数, 2 .php中命名空间的使用. 一.当不使用命名空间的时候 a ...

  8. ThinkPHP5.0源码学习之注册自动加载

    ThinkPHP5框架的自动注册加载流程如下:

  9. PHP自动加载下——PSR4

    1.先来介绍一下PSR规范 PHP-FIG,它的网站是:www.php-fig.org.就是这个联盟组织发明和创造了PSR规范,其中自动加载涉及其中两个规范,一个是PSR0,一个是PSR4, PSR0 ...

随机推荐

  1. mysql_connect

    in this passage, we slove the problem about Mysql_connect. first, let' see an example: resource mysq ...

  2. testng使用DataProvider+Excel实现DDT

    DDT,即数据驱动测试 Data Driver Test,我曾经记录了一篇关于python的DDT框架(Excel+DDT数据驱动实例),那么java中的DDT是怎么样的呢?在java中,可以用tes ...

  3. “System.Data”中不存在类型或命名空间名称“TypedTableBase”

    错误 1 命名空间“System.Data”中不存在类型或命名空间名称“TypedTableBase”(是否缺少程序集引用?)  解决方案 因为是把强类型DataSet文件绑定报表的项目中出现的错误, ...

  4. sql性能优化(摘自网络)

    索引,索引!!!为经常查询的字段建索引!! 但也不能过多地建索引.insert和delete等改变表记录的操作会导致索引重排,增加数据库负担. 优化目标 1.减少 IO 次数 IO永远是数据库最容易瓶 ...

  5. 浅谈为什么一个java源文件中只能有一个public类?

    声明,本篇文章为转载 转载 http://blog.csdn.net/bareheadzzq/article/details/6562211 最近在一个java文件中实现了几个类,其中一个声明为pub ...

  6. 生成word附件和word域动态赋值

    生成word文档和word域动态赋值,很多时候需要生成这样的word文档供下载和打印,先制作一个包含了域的 word的模板附件,放在服务器端或者字节流存入数据库,以供需要的时候代码可以获取到,如: 其 ...

  7. linux 图形界面的安装

    本文内容主要摘自:http://blog.csdn.net/hotday_kevin/article/details/8310054 文中图形的安装和卸载都给了两种方式,貌似是因为都是版本的问题而不同 ...

  8. Node.js最新技术栈之Promise篇

    前言 大家好,我是桑世龙,github和cnodejs上的i5ting,目前在天津创业,公司目前使用技术主要是nodejs,算所谓的MEAN(mongodb + express + angular + ...

  9. Linux基础命令---mkisofs

    mkisofs mkisofs指令可以创建ISO9660/Joliet/HFS文件系统,现在使用指令genisoimage代替它.genisoImage是一个预掌握程序,用于生成iso 9660/jo ...

  10. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...