原创作者: vb2005xu
阅读:734次
评论:0条
更新时间:2011-05-26
/** * xser php framework 0.2 设计构想 * * 鉴于 0.1.x 的版本 代码过于耦合,目录结构不规范,思路不清晰等原因 * * 目标 -- 简单易用,层次分明,代码组织规范,轻量级的B/S - MVC框架 * 定位 -- 面向PHP新手的一整套解决方案 * * 框架以MVC为架构,要充分体现出MVC的优势,做到低耦合,强封装的实现.借鉴Qee/Flea的实现, * 在功能上从这两个框架中抽取,在使用上围绕 [简单易用] 的原则进行删减. * * 框架层次: * * - C [分发器/控制器层]: * * 整个B/S请求过程中的中央处理器,由分发器对传入的请求进行分析,调用相应的控制器的代码处理. * 在控制器中调用封装好的M[业务逻辑]对输入数据进行处理并获得处理结果,最后将结果传递到V[视图]. * * 在实现中仍然采用UDI对象来作为资源的目的地标识符,提供对模块和命名的支持. * * 相应组件: 分发器,过滤器,控制器,URI路由,UDI对象 * * 流程如下: * 请求 -> 入口点 -> 分发器 -> 请求解析: {URI路由解析 || 标准解析} -> 目标资源的[UDI]: * { * * 资源不存在 -> 抛出异常 , * * 资源存在 -> 加载资源对应的过滤器: { * 过滤不成功 -> 抛出异常 , * 过滤成功 -> 初始化对应的控制器 -> 执行对应的action: { * 调用M[业务逻辑]并获得处理结果 * } -> 往 V[视图]里填充数据 并返回 * } * } * * - V [视图层]: * * 用于呈现内容给用户(也就是将程序运行的结果返回给浏览器显示). * * 在实现中仍然采用UDI对象作为视图元素的定位方案,提供对模板继承,局部自定义的实现 * * 相应组件: 视图对象,视图解析器,UDI对象 * * - M [业务逻辑层]: * * 用于封装与业务逻辑有关的代码和数据. * * 在实现中并不使用模型对应表的概念,将业务逻辑与实体存储操作混杂在一起,此层完全对业务逻辑的处理 * 在模型中提供 对实体存储的对象引用.方便项目的移植. * * * - P [实体存储层]: * * 提供对数据进行实体化存储的支持,供M层调用.依赖于 数据源 组件. * * 数据源 组件在实现中用来对实体操作进行封装,通过dbo_string来获取操作器对象的实例,对外部提供一个 * 简单统一的CRUD接口,对XML,TEXT,SQLDB进行封装.但是此处的封装并不会实现什么DSL操作脚本,只是提供 * 基本操做功能,比如使用SQLDB,在实体存储代码中完全可以 调用 SQLDB提供的其它方法. * * 真心的希望大家能够喜欢 .... */
评论 共 0 条 请登录后发表评论