Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4997690
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2011-01-02 20:31:35

zend framework版本:1.7.1
        这是一个小技巧,不过很实用。有时许多controller要共用同一个功能,比如后台部分都有一个登录验证。这时如果不想在每个controller中都编辑这个功能,就可以使用这种方法。

        首先我们了解一下类的构造函数的执行顺序,参看这里:
        http://hi.baidu.com/billdkj/blog/item/65028b03721272eb09fa931c.html
       
        下面介绍一下我的代码结构;

class Action extends Zend_Controller_Action {

        }
        class IndexController extends Action{
  
       }
        class BlogController extends Action{
  
       }
      
      刚开始我想使用构造函数,如下:
 class Action extends Zend_Controller_Action {
                public function __construct(){
                        echo 'test';
                 }
        }
   

       但后来发生错误,最后发现原因是没有调用
Zend_Controller_Action中的构造函数。
      
        细读
Zend_Controller_Action的源码发现123行构造函数 调用了函数 $this->init();
因此我想在
Action重构这个函数,这样就可以每次调用init()函数。
        最后是:
 class Action extends Zend_Controller_Action {
                public function init(){
                        echo 'test';
                 }
        }
   
       

        好了,每个controller都会执行这个函数。
        这个技巧还是很实用的!
        冷锋:http://hi.baidu.com/billdkj/blog/item/dee1b49571dc7f4cd0135e1d.html
阅读(1131) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~