php中如何制定轻量级的MVC标准
来源: 阅读:639 次 日期:2014-12-19 14:40:05
温馨提示: 小编为您整理了“php中如何制定轻量级的MVC标准”,方便广大网友查阅!

现在MVC的php开源免费框架已经很多了,我们没有必要去开发一个轻量的MVC来重复制造轮子,本文的目的是学习MVC的结构准备及MVC思路,这样可以更好的应用开源的MVC框架。

注:下面的定义都是狭义的,用于限定本次要解决的问题域,你也可以定义你自己标准,这不是啥业界标准。

(一) 轻量级MVC定义:

1. 框架对应用无侵入,不依赖任何接口类

2. 框架零配置,零注解

3. 简单易用,易于理解,暂且不搞RESTful,免得复杂

(二) 轻量级MVC接口:

1. Controller采用setter注入请求参数,并支持层级注入,如:book.title.

2. Controller采用getter供给数据给View,在View中可直接取到相应属性值,如:${property}.

3. Controller采用任意非setter和getter函数处理请求。

4. Controller采用函数返回值控制跳转,只允许跳转到另一Controller,不允许一个Controller对应两个View.

5. Controller对Model的依赖采用setter自动装配,包括Model之间的依赖.

6. Session参数,如:loginUserId,也通过setter注入到Controller,如果有请求参数注入了loginUserId,也会被Session参数给覆盖.

7. View与Controller一对一,通过名称映射,并支持各种View模板类型扩展,比如:JSP, Velocity, FreeMarker, CommonTemplate等.

8. 没有Controller时,View也能执行,相当于隐式Controller。

9. 框架应提供COC接口,基于规则约定某个包名是model,某个包名是controller,某个目录是view,比如:com.company.module.controller,自动发现module,并以单例模式加载model,以原型模式加载controller。

总而言之,接口除了setter和getter,以及自动映射规则,什么都没有.

(三) 轻量级MVC访问:

http://主机名[:端口][/应用名]/模块名/控制器名/函数名.html[?参数名=参数值]

注:方括号代表可省

(四) 轻量级MVC实现:

符合以上接口的实现均可。

(五) 轻量级MVC优势:

业务逻辑不依赖任何框架,可以适配到任意框架而不影响业务代码,当旧的框架被淘汰,无人维护时,可以以最快的方式迁移到新的更稳定的框架.

理想是美好的,现实是残酷的,上面纯属个人想法,现实中困难多了,怀着美好愿景总是好的。

更多信息请查看IT技术专栏

更多信息请查看CMS教程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map