关系:
应用 (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:
和标签位类似。