AGI PHPMVC 完成alpha 2版本

和朋友最后定下来,这个框架命名为AGI PHPMVC。我不想用Rails命名,事实上我有些东西是针对RoR做的,尽管RoR有很多优点,可只有实际用她做过项目的人才知道她的罗嗦。

本以为会是一个很漫长的过程,现在做下来,到完成alpha 2版,实现的核心类库和方法只有一个php文件,不超过1000行代码。当然,这过程中穿插着与skyweo的旷日持久的对于MVC模式,以及MVC的运作方式,MVC的运作细节的讨论。我也是第一次就工作内容讨论得如此深入,以致在alpha 1版的开发时期中,每夜梦中常会获得一些灵感,让我茅舍大开。

简单介绍一下到Alpha 2版本所实现的功能和MVC的实现情况:

1、目前实现的是被动MVC的模式,具体特征请参考此文:http://raderdotnet.blogspot.com/2007/03/mvpmvpmvp-httpmsdn.html

2、主要分两层,Request和Response,controller被作为一个Response的instance(响应实例)存在,从而与MVC架构进行对话。如下图:

Agi PHPMVC 架构

3、Request::route()实现类似RoR的uri路径配置规则,采用php的方式,非XML,实现在路径中获取变量。

4、Response::instance(),每个Action对应一个view,每个Action默认输出该对应的view,没有view时提示缺少必要的视图文件。实现在Action中使用Response::render()方式输出指定的视图或者Response::renderText(),改变默认输出方式。

5、实现类RoR,MR的layout模式,可灵活在Controller定制全局layout和局部某个Action采用自定的layout。

6、Model的调用方式,目前是创建一个该Model的实例,由于目前的php 5.2.6仍不支持静态类的高级方法(如延迟绑定属性),不过已经看到php 5.3即将支持静态类的一些高级方法,所以相信这个问题很快会得到解决。

7、Model的加载方式暂时不公布。

8、DbModel,已经实现数据库连接、CRUD、数据提交验证以及分页搜索,支持高级搜索。数据库连接使用PDO。支持事件机制(目前版本的事件机制主要模仿RoR,php 5.3会有新的匿名函数的机制,至时会实现高级的事件机制)。

9、实现HTML和Form类,HTML主要用于生成页面标签,包括常用的一些标签的生成方法。Form类主要针对Model,实现自动绑定数据对象和数据更新,并自动绑定数据验证的错误结果,这里可节省大概40%的开发量。

10、实现多语种,还有其他一些若干动态的特性。

 

目前在两个小的网站中测试,暂时没有机会测试其并发性。

下一个版本会实现缓存,并进一步优化Form及HTML的方法,具体的请关注更新。

2.1 更新[08.09.23]

  • 修改route的匹配逻辑,调整基础匹配规则实现(字符配置)。
  • Form类调整
    1. 默认new Form不再和DbModel绑定,Form实例绑定到Model通过bindModel()实现,设定Form的Fields通过setFields()实现。
    2. 修改Form创建到HTML流的方法。
  • HTML类调整
    1. 调整了lists()方法的options的绑定方式
    2. 简化tag方法,HTML::strtag()取消,转为公用函数stag实现。
  • AbsController类调整
    1. Request::route()后的路径变量直接作为Request::$_instance(controller实例)的public属性存在,在Action以及View层直接使用$this->action,或者$this->params_name来获取(该方法将在下一个大版本更新中优化)。
  • Response类调整
    1. 增加addErr和queryErr的方法来增加和读取Response的错误,下一个大版本的调整,DbModel抛出的错误将直接塞进Response类中寄存。
  • AbsSiteConf类调整
    1. 将部分命名逻辑调整到该类实现,下一个版本将会把底层所有的命名逻辑移动到该类,以方便配置扩展。

转载于:https://www.cnblogs.com/janpoem/archive/2008/09/13/1290538.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值