php开源框架,支持mvc,orm,分布架构:PADPHP

fmms 13年前

PADPHP是基于php的一个开发框架,是我们项目开发过程中逐步总结出来的一套开发框架。 PADPHP是发展初期,得到了一些朋友的帮助,使得框架逐渐完善,形成现在的版本。当然,现在希望更多的朋友参与进来,一起完善这个框架。 框架提供了很少的对象和函数,但足以解决90%的需求,性能和开发敏捷性始终是我们最关注的。

框架阶段发展图:

  • 1阶段 -- 一个简单的sql处理器和管理数据库连接
  • 2阶段 -- 加入缓存管理,数据表模型,数据库读写分离,支持多台机器读
  • 3阶段 -- 支持orm,mvc等,但思路不清楚,导致orm效率较低
  • 4阶段 -- 对phpmoo全部代码进行重构,思路清楚,效率较高
  • 5阶段(未来) --打算对关键部分用c扩展实现,进一步提升运行效率

PADPHP一些基本特性:

  • 极高的性能,因为框架没有花哨的东西,特别注重性能,性能高于zend等框架。框架定位于应付大流量。
  • Orm基于领域模型思想,也就是数据库表的单条数据对应一个对象。
  • Mvc 足够灵活,提供了大多数基本的widget(也叫helper),支持用户自定义widget,支持路由解析和反解析,支持action转向,更灵活的 render。使用原生php作为模板,有更好的性能,但在模板级保护了orm数据不能修改。模板支持layout机制。
  • 对缓存考虑得很多,框架认为的缓存实际上是数据库的中间层,支持单条数据缓存,查询结果缓存。缓存控制的核心思想是版本号控制。开启缓存保证90%对数据库的0查询,避免数据库瓶颈。一个application的可以分布在多台机器上,版本号缓存存储端统一使用一个就可以保证缓存的一致性,版本号缓存存储端使用 memcache的话负担很小。
  • Sql查询更简单,提供了一系列Sql的函数,关联对象的查询不需要用户关心 Join。
  • 基于领域模型,支持数据延迟加载,不需要用户在sql中指明需要的字段,小字段和大字段会分开加载。
  • Orm 的对象映射配置支持基于约定,配置工作很简单明了。支持belong_to,has_one,many_to_many,has_many,关系的映射定义基于belong_to,has_one,many_to_many和has_many只是一个简单的声明。
  • Orm支持工作单元,所有数据的操作可以不需要用户save,但用户也可以手工save,所有的数据更改会自动保存,支持事务和非事务。Orm的修改提交到数据库时会自动合并 sql语句,保证了效率。
  • 支持数据库读写分离,只是读从库按百分比读取,支持应用多台机器分布。
  • 整个框架追求小而精,目前压缩发布的所有代码小于120K。

项目主页:http://www.open-open.com/lib/view/home/1333637183936