chaihongjun.me

应用、项目、控制器、操作、模型、钩子概念解析

关系:

应用 (application) => 模块 (module) => 控制器(controller) => 操作(action)

例子:

某商城程序=> 用户模块=> 权限控制器=> 增加权限操作

对应的URL:

http://domain.com/User/Auth/add.html


项目(project)可以包含多个应用,比如航空公司项目,包含一个形象网站以及在线售票系统和考勤系统3个应用。 


模型,全称是数据对象模型。

一个数据,例如一个商品,有id,name,count等单一属性,也有像评论、图册这种列表属性。传统的mysql处理起来会很复杂。所以先将数据映射成数据模型,这样的话对于控制器来说,就无需知道数据模型类里面是如何实现的,只需调用数据模型类的方法就可实现自己的目的,将数据存储、整理(例如将评论变成树)的任务交给数据模型。

这样可以提升项目代码的可读性,易维护。


钩子(Hook):

例如我在门口放一个钩子,每次有人进出门,我就会收到,并且记下来。

例如我下一个注册用户的钩子,然后在钩子处理里面记录注册者的IP,检查一天累积注册超过5次,就不允许他注册了。钩子和事件是差不多的概念。

行为:

可以理解为控制器分出来的一层,例如用户注册的控制器里必须写上判断用户上传的email,password这些参数。然后补充注册ip,发送短信等等事情。如果都写在控制器中,未免把控制器搞得臃肿。所以将其抽象到行为层(个人觉得这一层抽象是非必要的,因为这些工作都可以分配到事件层和数据验证层)。

接口:

如果你说的是php的interface关键词,那么这属于php语言范围的知识。并不是应用、抽象、框架上的知识,此处略过不提。

函数:

同上

widget:

和标签位类似。


知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。作者:chaihongjun»