手撸php框架5.0--构建Component之简介

1.事件的概念
对于事件,我们定义了事件名和事件处理器两个概念,其中事件名和事件处理器是一对多的关系。所以,在触发一个事件时,会触发一系列的处理逻辑,关键是这些处理逻辑在其他事件中可以复用,这就很强大了。事件处理器和事件之间唯一的耦合之处就是绑定,而我们又可以自由地解绑,这是对扩展的开放和对修改的闭合。事件处理器可以复用,这是提高了复用性。

要添加事件这一特性,我们需要实现以下功能:
1).保存事件绑定关系的数据结构
2).绑定事件方法
3).解绑事件方法
4).触发事件方法,触发的顺序问题
5).绑定事件时的数据传递
6).触发事件时的数据传递

其中,事件分为对象级别的事件和类级别的事件。对象级别的事件只能触发自己实例注册的事件,类级别的事件可在不同实例间共享。

2.行为的概念
扩展一个类的行为和属性,首先想到的是继承然后添加方法和属性,其次是使用php的特性trait来扩展。但是,还有另外一种方式提供了扩展类的方式,那就是组合,简单来讲,就是当前类持有另外一个类的实例,自己没有的方法和属性委托给这个实例对应的属性和方法。而我们的行为,就是那个被持有的实例,只不过我们按照我们的规则去定义,并且加入了事件的特性,所以看起来略有不同。

要添加行为这一特性,我们需要实现以下功能:
1).保存行为绑定关系的数据结构
2).绑定行为的方法
3).解绑行为的方法
4).行为中的事件解决方式,包括绑定时注册事件,解绑时删除事件
5).在行为注入后setter和getter特性的实现

ok,今儿个先到这,欲知后事如何,且听下回分解……
github源码:https://github.com/2lovecode/tank

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值