快速业务通道

Openbiz 实现 PHP的元数据编程

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

引言

元数据(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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号