zend framework 框架中自定义父控制器

今天简单的聊聊ZF框架中的控制器。
大家都知道ZF中不可以使用__construct()构造方法,类的初始化操作需要用init()方法完成,
原因大部分朋友都应该了解,在php中,当子类有构造方法时,父类的构造方法不会被调用,
通过阅读zend/controller/Action.php的__construct()可以知道,它通过使用$this->init(),类似注入的方式,避免了这种情况。
那么在一个项目中,若干的controller可能会做一些同样的动作,比如初始化session、实例化一些对象等等,
如果在每个controller的init()中,写一些重复的代码,当controller比较多时,一来比较麻烦,二来不方便后期维护。
怎样解决这个问题呢?可以把这些代码写到一个文件中,然后include(),也可以OOXX,但我不认为这是个好办法,我的方法是,自定义一个父控制器。
例如:在library目录中新建一个Mylib/Controller/Parent.php文件,让这个文件继承zf的Controller,这样写:
class Mylib_Controller_Parent extends Zend_Controller_Action
{
public function init()
{
parent::init();
// Your custom code
}
}
以后在每个项目controller中不要继承ZF的默认控制器了,直接继承我们自己的Parent:
class DefaultController extends Mylib_Controller_Parent
{
public function init()
{
parent::init();
// Your custom code
}
}
就是这么简单。 ;-)
第一篇关于Zend Framework的文章,没什么技术含量,以后我会把项目中常用到的、实用的ZF经验技巧写下来,谢谢大家支持。

TrackBack:  http://mimiz.cn/index.php/php/zend-framework-custom-parent-controller/trackback/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值