Ddf 框架设计概要
============================================
前言
接触php框架,是起始于在河北大学化学实验室平台的项目中。当时项目的开发是基于一套 SD框架(Simple Develop 简单开发)。SD是由野马来开发完成
SD从根本的意义上来说,算不上是什么完整的框架。SD实现用apache的Rewrite来实现项目的单一入口,执行类加载器Mapping定位类, 然后统一定位到类
的入口方法 run方法,在run方法内完成逻辑关系的操作。基本对象关系映射(Object Relational Mapping,简称ORM),来完成数据层的基本操作。
优点:框架小巧灵便适合新手阶段的部署开发,思路清晰简便明了,很容易能看清楚整个流程的走向 适合新手级phper开发。
缺点:扩展行不高,可定制性不高,功能性太弱。
后来在视觉中国的时候,基本的项目开发都是基于nightsalier 开发的Doggy(),Doggy相对来说功能上更趋完善。在存储层 缓存层 权限控制层都有所体
现。它的路由规则相对来说更复杂。期间有了namespace model action的概念区分。namespace是一个相对单一的功能系统。model层主要是对数据逻辑进
行操作 业务逻辑主要在action层去体现。
Doggy中 对http协议进行框架级别的封装。可以在路由到相关action的时候,去http request进行相应的处理。ActiveRecord模式应该事Doggy的一个亮点
使得ORM更理想,并且实现了多表联合查询,延迟加载,关联更新关联删除。
在doggy中,有了前置和后置拦截器的概念,可以根据与设定的拦截器在到达具体类的具体方法之前,拦截器进行拦截然后路由到相关的接口。应用比较不
错的是权限配置拦截器,根据当前浏览者状态和权限情况,调用不同的接口方法来实现权限控制。
存储层doggy提供了两种可以选择的存储机制,分布式系统和文件系统。有不同的provider实现相同的interface,然后后统一的manager去调用。
cache层dogy也提供了两种可选择的存储机制,文件系统和memcache(内存缓存)。并且实现了一种组的概念,利用组对相对应的cache进行管理。
优点:功能模块齐全 易扩展
缺点:框架部署难度较大 执行流程烦琐 不适宜新手级phper开发部署。
总上所述,决定开发一套适应自己的web框架,来提高自己的开发效率,综合性的去理解程序设计和框架设计的思想。
========================================================================
设计原则:
多方式多分支支持,比如存储分布式和文件系统的双重支持 路由规则的设定和选择;
配置明细化,按照不同的功能和模块设定不同文件进行不同配置(框架将使用yml格式配置文件);统一加载和依赖注入并存,框架级配置需在框架启动前
加载相应配置数据,应用级配置需在用到相关配置时临时加载配置文件;
技术实施:
尽可能去应用php5的新功能新特性 去实现新功能;
尽可能去了解数据库服务器的特性,了解数据库的特性,对其做相应的优化;
尽可能去了解web服务器的特性。