zend framework,init()

   首先我们了解一下类的构造函数的执行顺序,参看这里:
        http://hi.baidu.com/renyuan1985/blog/item/2ef2c3c65a59e8139d163db9.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都会执行这个函数。
 这个技巧还是很实用的!

 

最后提醒大家的是,每次执行的时候,是先执行Controller的初始化函数init()内部的代码,然后根据选择相应的Action(),执行相应的代码

posted @ 2010-10-28 17:26  春哥也编程  阅读(443)  评论(0编辑  收藏  举报