Openbiz 实现 PHP的元数据编程
引言 元数据(Metadata)编程思想源于Java这种高级语言,简单的说就是将业务逻辑与实现代码进行分离,仅用XML这类的描述性语言描述业务之间的映射关系,不需要写实现代码即完成编程。
源于Java的元数据编程特性 原数据是软件架构方面的先进技术之一,让你可以编写更少的代码实现更多的事情,将业务逻辑的重用性发挥到了极致。也许听起来有些抽象,让我们来看一个实际的例子来帮你理解我主张的元数据编程理念。 Openbiz架构让 PHP的元数据编程变为可能 对于脚本级的PHP语言,现在已经成为web开发的主流语言之一。但由于他的出身是一个面向过程的编程语言(我说的是php3,有铁锹那年的事儿了),并不像Python或者Ruby这样的语言,上来就是为了对象而生的极致对象化语言。 基于这个简单的背景,也许还有PHP本身开源免费的原因,我们看到针对php语言的高级扩展相对于.Net 、Java、Objective C这样的商业化语言总是滞后一步。当PHP5发布时高喊"哥们儿 如今已经面向对象了!" Java,.Net和Cocoa问他"你有元数据编程概念么? 你有UI级别的可重用控件么?Zend怎么还没给你穿上衣服?回去玩儿铁锹吧" Zend 框架的发展路线始终热衷于底层逻辑代码重用,比如zend_cache, zend_mail, zend_gdata , zend_table 确实实现了大量的底层逻辑的重用,解决了很多微妙复杂的问题。 这里我们积极认可Zend作出的贡献,不过"大哥您到多往前迈一步啊!",不!咱们大哥就喜欢干粗活,不喜欢搞文艺。 最后特别幽默,经过Zend不懈的努力,大哥终于把一件复杂的事情(PHP)抽象为另一件复杂的事情了(Zend框架)。你数数zend的API接口并不比php本身的extension简单多少。 在此不得不提到 伊利诺伊大学毕业的硕士高才生,曾任摩托罗拉的技术主管,美籍华人Rocky Swen,(本人一直是他技术思想的追随者),早在2003年,php4那个年代,他提出了让PHP基于元数据,不用写代码即实现编程这一概念,并有了Openbiz框架的雏形,经过了9年的完善到了今天。 这个理念当时就让我眼前一亮,你看看Zend, CodeIgniter,CakePHP 无一例外属于继承式框架 相当于一组可重用的代码库,Openbiz框架特别之处在于这是一个解释型框架,相当于"编译器"的角色。 当其它开发环境和框架致力于让开发人员少写代码的时候,Rocky兄 提出,别让他们写代码了直接用简单XML语言来描述映射关系即完成编程。 让我们来比较一下这几段程序 以订单管理的数据对象为例 PHP传统的数据对象写法 Class OrderDO { protected $m_id; protected $m_client; protected $m_product; protected $m_price; protected $m_timestamp; public function create(){ … } public function delete(){ … } public function update(){ … } public function search(){ … } public function list(){ … } } PHP基于Openbiz的元数据写法 <?xmlversion="1.0" standalone="no"?> <BizDataObjName="OrderDO" Class="BizDataObj" DBName="Default" Table="order" IdGeneration="Identity" CacheLifeTime="7200" > <BizFieldList> <BizFieldName="Id" Column="id" Type=" |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |