ZendFramework中实现自动加载models

本文介绍了一种在使用ZendFramework时优化自动加载模型类的方法,通过修改Bootstrap.php文件,使得无需require模型下的类文件即可实例化,提高了开发效率。

最近自学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();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值