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