`

Delphi for PHP 评测

 
阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>

Delphi for PHP 评测
Haohappy haohappy AT msn.com
转载请注明来源:http://blog.csdn.net/haohappy2004

为书写方便,下面将Delphi for PHP简写为D4P。

其实现在写这篇评测稍早了一些,因为这个IDE以及使用的开发框架Vcl for PHP都才刚推出不过一个月。

首先请先回顾一下关于三种主流WEB架构的思考 一文所说的三种WEB开发方式,使用D4P开发是典型的第三种方式,就是IDE+基于控件、事件驱动的开发框架。

我根据D4P的DEMO,设计了两个程序,一个是普通的表单提交-返回程序,然后我所熟悉的QuickForm进行了对比;另一个是数据库程序,就是查询一个MySQL表,然后返回,另外试用DataGrid列出数据。

在写测试程序的过程中,除了熟悉和体验一下IDE的使用,其实我更感兴趣的是Delphi for PHP这个IDE所采用的PHP开发框架――Vcl for PHP(http://www.qadram.com/vcl4php/)。在我使用D4P之前,我就猜测Codegear在易用性上一定不错,这个猜测得到了证实。但是Vcl for PHP是否是一个优秀的PHP框架? 如果没有优秀的开发框架,不能保证程序的质量和效率,那么光靠个优秀的IDE,开发出来的程序一定是中看不中用,没人敢用。

基于这个想法,我认真研究了一下VCL for PHP(简称为V4P)。这个框架2007年3月27才开源的,也就是说开源不到一个月。框架文件位于C:/Program Files/CodeGear/Delphi for PHP/1.0/vcl目录,或者你也可以在http://www.qadram.com/vcl4php/网站上下载到。

我们可以看到,V4P使用了很多我们熟悉的PHP开源类库,例如ADODB、Smarty、Xajax、Nusoap等等,还使用了qooxdoo这个JS GUI工具包。也可以看到一些似乎还未完成的类库,如对Google Map的调用(见vcl/google目录),对PHPBB论坛的调用等。这下你明白了吧,为什么D4P这么强大,呵呵,因为它站在巨人的肩膀之上啊。不过这也带来了一个问题,太依赖别人的类库,缺乏自主性,对于代码质量带来了不可控因素。

对于第一个测试程序,很简单,就是一个表单提交数据,然后返回响应。大家可以自己参照Demo来写,我测试了一下效率,大概执行时间在0.5秒左右,嗯,算是非常慢。

对于第二个测试程序,也就是数据库操作程序,是我比较重视的,下面来详细介绍一下。

D4P目前支持MySQL和Interbase两种数据库。我打开D4P的安装目录看了一下,原来数据库访问层使用的是ADODB(http://adodb.sourceforge.net)这个开源类库。也就是说理论上将来D4P可能支持非常多的数据库,因为ADODB实在太强大(这里是ADOdb支持的所有数据库:http://phplens.com/adodb/supported.databases.html)。

D4P提供了五种数据库访问控件(Data Access:Datasource,Database,Table,Query,StorProc—数据源、库、表、查询、存储过程)和三种数据库控制控件(DBGrid,DBPaninator,DBRepeater—表数据列表、分页、表数据或记录集列表)。

DBGrid的设计还是很精巧的,前端采用了AJAX,显示很漂亮,还可以直接更新。但显示速度较慢。老实说这样一种东西对于管理后台数据库似乎中看不中用,如果是数据库管理,我们还是使用熟悉的更为强大的PHPMyAdmin吧;如果是提供给用户的管理页面,我们要定制很多页面效果,DBGrid又不满足要求(太复杂了,而且都封装起来了,修改效果不如自己写)。用于给客户作展示倒是挺适合的。

我们再来测试一下代码的执行速度。任务很简单,我们从两个表中分别读取30条记录,然后分别两个生成DataGrid:

测试代码非常简单:

<?php </span>
$time_start
=microtime_float();
//Includes

require_once("vcl/vcl.inc.php");
use_unit("forms.inc.php");
use_unit("dbgrids.inc.php");
use_unit("dbctrls.inc.php");
use_unit("db.inc.php");
use_unit("dbtables.inc.php");
use_unit("extctrls.inc.php");
use_unit("stdctrls.inc.php");

$time_start2=microtime_float();

//Classdefinition
classUnit2extendsPage
{
public
$DBGrid2=null;
public
$dsfeedentry1=null;
public
$tbfeedentry1=null;
public
$Query1=null;
public
$DBGrid1=null;
public
$dsarticle1=null;
public
$dbhappycms21=null;
public
$tbarticle1=null;

}

global
$application;

global
$Unit2;

//Createstheform
$Unit2=newUnit2($application);

//Readfromresourcefile
$Unit2->loadResource(__FILE__);

//Showstheform
$Unit2->show();

function
microtime_float(){
list(
$usec,$sec)=explode("",microtime());
return((float)
$usec+(float)$sec);
}

$time_end=microtime_float();
$time_lib=$time_start2-$time_start;
$time_total=$time_end-$time_start;

echo
"Loadedlibsin$time_libsecondsandallprocessedin$time_totalseconds";
?>

输出结果:

Loaded libs in 1.1935691833496 seconds and all processed in 2.1492249965668 seconds

结果告诉我们:读取两个表并且生成DataGrid总共花费了2.14秒,其中加载公用类库用了1.2秒。

我用PHP程序员最常用的数据表读取及输出结果的代码进行同样功能的代码重写,即用两个mysql_query(‘SELECT * FROM table limit 0,30’)得到结果并用while循环输出,消耗时间为:
All processed in 0.31938099861145 seconds

0.3秒对2.1秒,相差7倍,可见D4P的DataGrid效率相当低。注意这是测试的是服务器端数据查询的执行效率,实际上在浏览器端的显示也有明显延迟,可能qooxdoo的效率也不高。

D4P除了有自带的基于qooxdoo的DataGrid,还可以与PEAR的DataGrid直接集成,就是一个正常的HTML表格界面,相对比较容易扩展。

其它:

小结一下:

D4P的优点:

  • 界面清爽漂亮,IDE速度较快。操作简便,继承了Delphi的传统。
  • 控件相当齐全,所有的表单和常见的HTML控件,还有不少特色组件,比如HTML在线编辑器、进度条、日期选择器、日历、树状菜单等等。还有数据库和WEBServices控件等。可以满足大部份情况下设计的需要。
  • 代码可复用性高。

D4P的缺点:

  • 只支持Windows平台;光是这一点,就无法与ZDE相抗衡,不过在中国问题不大,因为在中国大部份人都在Windows下开发项目,在Linux下布署。
  • 生成的代码执行效率不高。

这是个主要缺陷,具体看上面的测试数据。如果是“展示型”的站点,例如门户网站的新闻频道,肯定不可能用这样的框架来开发。因为我们要对服务器端的脚本和生成的HTML/JavaScript都要精确控制,减少效率和带宽上的浪费。

将来我也许会拿D4P来开发OA之类的企业内部应用。这种项目界面控件比较多,需求比较复杂,变化比较多,但系统负载不大,对效率要求不高。

  • VCL for PHP以大量开源类库为基础,代码质量不能保证完全可控制。

Vcl for PHP无法对其使用的开源类库的代码作统一的质量控制,所以我对这样一个工具执怀疑态度。我喜欢程序的每一部份都是“可控”的,过多的封装和过多的依赖其它第三方类库让我对其内部产生不信任。

当然,Vcl for PHP作为开源项目才诞生一个月,还有很大发展空间,让我们过段时间再来关注一下,也许到时会有惊喜出现。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1586799


分享到:
评论

相关推荐

    DelphiForPHP教学视频

    Delphi for PHP提供了快速和视觉化创建强大的PHP应用程式的能力, 新的PHP元件以及打包现有PHP代码到可重复使用的视觉化元件所需要的特性和功能性 。Delphi for PHP通过无缝支持MySQLR, InterBaseR from CodeGear, ...

    Delphi for PHP Sample

    Delphi for PHP 事例Delphi for PHP 事例

    delphi for php v2.1.0.1083破解版.part03

    位于加拿大安大略省的一家 开发者工具公司-JomiTech的所有者 Jonath an Benedicto认为:“CodeGear开发工具是市场上最好的工具, Delphi for PHP也是如此。”Benedicto说道: “作为长期PHP的开发者, 我第一时间...

    Delphi for PHP v2.1.0.1083-Crack

    Delphi for PHP v2.1.0.1083的破解文件

    delphi for php v2.1.0.1083破解版.part01

    位于加拿大安大略省的一家 开发者工具公司-JomiTech的所有者 Jonath an Benedicto认为:“CodeGear开发工具是市场上最好的工具, Delphi for PHP也是如此。”Benedicto说道: “作为长期PHP的开发者, 我第一时间...

    delphi for php v2.1.0.1083破解版.part02

    位于加拿大安大略省的一家 开发者工具公司-JomiTech的所有者 Jonath an Benedicto认为:“CodeGear开发工具是市场上最好的工具, Delphi for PHP也是如此。”Benedicto说道: “作为长期PHP的开发者, 我第一时间...

    Delphi for php 2.0 crack

    Delphi for php 2.0 crack for w2k,xp only for D4PHP.2.0 and D2005

    DelphiForPHP电子书抢鲜版

    delphi for php的推出对于php爱好者来说无疑提供了巨大的动力,也是对php的可视化编程提供革命性的发展,然而对于delphi for php的中文书籍是少之又少,希望本书能给php爱好者提供参考。

    delphi for php完全支持中文三部曲

    delphi for php完全支持中文三部曲delphi for php完全支持中文三部曲

    CodeGear.Delphi.for.PHP V2.1.0.1083 including Crack Part4

    CodeGear.Delphi.for.PHP 最新版本包含破解 共5卷

    delphi for php

    delphi for phpdelphi for php

    delphi for php v2.1.0.1083破解版.part08

    Delphi for PHP所包含的重要特性: 适用于PHP的RAD环境 1. VCL for PHP – 基于开源PHP 5版本而开发的可视元件 库,拥有超过50个可延展和可复用的组件, 以及无缝AJAX整合 2. 与InterBase, MySQL, Oracle, ...

    delphi for php v2.1.0.1083破解版.part06

    Delphi for PHP所包含的重要特性: 适用于PHP的RAD环境 1. VCL for PHP – 基于开源PHP 5版本而开发的可视元件 库,拥有超过50个可延展和可复用的组件, 以及无缝AJAX整合 2. 与InterBase, MySQL, Oracle, ...

    delphi for php v2.1.0.1083破解版.part04

    Delphi for PHP所包含的重要特性: 适用于PHP的RAD环境 1. VCL for PHP – 基于开源PHP 5版本而开发的可视元件 库,拥有超过50个可延展和可复用的组件, 以及无缝AJAX整合 2. 与InterBase, MySQL, Oracle, ...

    delphi for php中文教学视频(第一部分)

    本视频是目前关于delphi for php最详实的中文教学视频,操作步骤详细!十分易学易用!压缩包内文件包括: 1.ajax牛刀小试.swf 2.ajax操作数据库.swf 3.BitButton使用方法.swf 4.checkbox使用.swf 5.edit控件使用.swf...

    Delphi for PHP v2.1.0.1083 Cracked.part2

    Delphi for PHP v2.1.0.1083 Cracked.part2

    delphi for php v2.1.0.1083破解版.part09(完)

    Delphi for PHP所包含的重要特性: 适用于PHP的RAD环境 1. VCL for PHP – 基于开源PHP 5版本而开发的可视元件 库,拥有超过50个可延展和可复用的组件, 以及无缝AJAX整合 2. 与InterBase, MySQL, Oracle, ...

    PythonForDelphi for Python3.7 delphi7 + XE2

    PythonForDelphi 修改 最后修改日期2019-2-1这一版, 使之delphi7 可编译安装,适合python 3.7 , 需要注意的是python 3.7 要安装32位版

    delphi for php中文教程

    Delphi for PHP IDE资料包括关于不同开发环境创建应用程序的多个方面内容,在下面列出了本文档的大体结构,您可以使用后续目录进行快速浏览导航。 • 用户指南 – 准备开始使用Delphi for PHP开发程序并熟悉此IDE...

    delphi for php 破解

    将这个头像覆盖住安装好的软件的根目录下就可以了

Global site tag (gtag.js) - Google Analytics