background image

很有效地解决了大量验证时的效率瓶颈,这种验证方法只有一个问题就是规范文件本身的
制作比较费力(当然用工具的话是另一回事了),然而一旦做好(规范文件本身有格式与
规范的),验证就自然而然地由框架去做了,而无需每次人为调用。它的事件也可以定义在
规范文件之内(我却认为这就没有必要了),其实它的规范文件就有点类似于

DELPHI 或

VB 中的 FORM 定义文件,只不过是用 XML 写的纯文本,而非可视化。而对于事件驱动,

框架内置了一套与点

NET 类似的基本事件流,你可以在不同阶段定制这些事件,其实说白

了,就是重新定义这几个

OnXXX 函数,用给定形式的参数,你也可以自己加入自己的事

件,比如你在定义自己的组件时,在规范文件中定义好该组件可能有的事件函数及参数,
以后你在使用该组件时可以直接定义这些被允许的函数

——不过我认为这种方式过于复杂

且要大量读入并分析

XML 文件,虽然十分地严谨,很安全,但有些过分了,也没有充分

利用到

PHP 本身的灵活性,我的思路是用类似于 DELPHI 的函数句柄赋值的办法或是用 C

的回调函数的特性,即可在写代码时在任何时间任何地点定义事件,而仍然能明确事件发
出者及类型并有足够地安全性保证,且无需机械地强制各个组件只能有哪些事件,代码修
改及扩展都十分方便。当然,在做大项目的时候,严格的定义是必要的,不过,即使如此,
该框架处理事件的方法还是有些古板。它的模板我认为是一个比较好的想法,它的模板有些
类似于点

NET 的 ASP 文件在编译前的文件(我对 ASP 点 NET 并不熟,但明白一些原理),

但起作用的方式则类似于

DELPHI 的 FORM 文件,是一个很好的概念,唯的一缺点是用

DW 之类所见即所得的通用编辑器则感觉不是很顺手,因为一个模板中可以同时把几个互
斥的组件放在一起,而只在运行过程中决定显示哪些。

就我本人看该框架的代码,还是发现它有一些非常弱的项。其中最主要的一个就是路径

的问题,可扩展性很低,应该比较适用于专用主机,对一些受限主机(目录限制或是权限
限制)就无能为力了,也无相应的提醒措施(也无相关接口)。它对某些资源或文件的路径,
用了一种繁琐的叫

assetService 的机制,目的就是确定文件的路径,作者自己也说,如果用

了这个服务,系统消耗会明显增加,其实这个是借鉴了

FLASH 中 asset library 的概念,它

这样虽然可以任意指定路径,但每次都必须重新校验,有些得不偿失。我的作法则是固定好
几个主要路径,而其的子目录都可随意,就综合平衡了两者的矛盾。由于对路径问题缺乏考
虑,导致该框架对语言设置、个性化模板等无能为力,如要翻译一个项目,手续之繁,工作
量之大是可想而知的,而且极易出错。这是该框架中最严重的一个问题。

从总体上来说,该框架的理念上,设计上,代码上绝对都属一流。当然不足总是有的,

不过完全不妨碍我们研究及学习它。它的代码我并未全看,只主要看了几个核心程序及一些
说明,但已能足够看清楚其结构与思想,对作者深表佩服,但对其中的不足也深表遗憾。不
管怎么样,它都绝对是研究

PHP 事件驱动代码的好作品。因此强烈推荐!