喜欢PHP的朋友哈,一起进步吧。。。。欢迎来到鸟哥的私菜园。

Delphi for PHP 为名词而疯狂

上一篇 / 下一篇  2007-09-11 11:58:11 / 个人分类:Delphi For PHP

Delphi for PHP
这个名词在我脑子里出现不到十五分种。
心情由狂喜到疑虑

“Delphi for PHP”是我最感兴趣的两个技术的合成词 “delphi”——我决心掌握一门面对对象编程技术,它将是我的选择。“php”——我现在用得最多的一项实惠的源码语言。
php代表了,我力争走网络路线。php就是为了网络web应用而生。
delphi代表了,我寻找更强的服务器端工具,客户端我以为flash已经注入了相当的活力。
这个两个名词的合成词出现代表了什么?是我期盼的新世界吗?
从手头的内容看来是一个类似于ZEND的IDE

收录一些资料

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


1、 完全支持现有PHP项目。李维先生将一开源的纯PHP5项目用delphi for PHP打开,即可编译运行。
2、 支持模板、CSS等技术。
3、 非常Cool的调试技术。将光标移到其链接,在出现链接的所属PHP文件里,设置断点,当页面调试运行到该断点时候,自动跳转到其PHP所在的断点。在Debug窗口里,呵呵,比Delphi的Debug做得更好,自动会出现断点所在的类实例、变量树形调试信息,甚至是Request的内容,类似VS.NET2005的Debug窗口。由于PHP是动态语言,如果有变量尚未声明或实例化,则会出现“尚未确定”之类的提示。
4、 用Vcl封装PHP而成的组件,其源码脚本还是纯正的PHP脚本语言。Vcl组件的Object Inspector除了有属性、事件外,还有javascript,运行在程序中动态调用javascript。
5、 非常震撼的可视化界面设计。delphi for PHP有50多个组件,其中有一个为window组件,将其放在页面上,拖拉其大小,会出现一个window form(有最大化,最小化,关闭之类按钮),然后,你可以随意拖放类似 Standard组件或数据感知组件。跟你做CS界面并没有什么不同。一个web页面可以放多个window组件,然后用Show方法显示调用。运行后,window form会出现在浏览器的页面里。说起来,那些所谓的Web UI技术,比如是Sturcts、JSF等流行框架,如同垃圾一样,生产力并没有什么显著提高。CodeGear很牛啊。
6、 最后一个演示例子,李维先生将一个封装而成的Google Map VCL组件(PHP封装而成)运行演示,呵呵,不写一句代码,竟然实现了 Google 官方网站上Google Map所有功能,一摸一样。李维先生用Google Map例子显示Borland总坛和他的台北家。呵呵,台北不是我的家,我的家乡没有霓虹灯;深圳也不是我的家,我的家乡没有歧视也没有三座大山。
7、 Delphi for PHP大概今天在美国正式Release,其试用版大概一周后可下载。价格是299美元,优惠期申购价格为249美元左右(呵呵,网上报价,我可不是托)。Release后,其Vcl组件包源码将会提交到开源组织开源。CodeGear只卖IDE。Delphi for PHP与Delphi2007是两个不同的IDE,将来应该会统一起来。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

今天化了一个小时写了一个小程序,我的delphi php的第一个程序。功能是在浏览器上显示一道简单的加法题,用户可以输入答案,电脑会告诉你正确或者错误,然后可以再来一题。功能很简单,主要为了熟悉delphi for php,写的时候,不时地查阅php帮助,发现这次codegear的php帮助做的还是不错的。



程序如下:


//Includes
require_once(”vcl/vcl.inc.php”);
use_unit(”forms.inc.php”);
use_unit(”extctrls.inc.php”);
use_unit(”stdctrls.inc.php”);

//Class definition
class Unit3 extends Page
{
public $txtAnswer = null;
public $btnB = null;
public $btnA = null;
public $btnRun = null;
public $lblMsg = null;
public $Button4 = null;
public $Button2 = null;

function btnRunClick($sender, $params)
{
$a=rand(1,9);
$b=rand(1,9);

$this->btnA->Caption=$a;
$this->btnB->Caption=$b;

$this->lblMsg->Caption=” “;
$this->txtAnswer->Text=” “;

}

function txtAnswerSubmit($sender, $params)
{
global $a;
global $b;
global $c0;
global $c1;

$a=$this->btnA->Caption;
$b=$this->btnB->Caption;
$c0=$a+$b;
$c1=$this->txtAnswer->Text;

if ($c0==$c1){$this->lblMsg->Caption=”Right”;
} else {$this->lblMsg->Caption=”Wrong”;
}

}

}

global $application;

global $Unit3;

//Creates the form
$Unit3=new Unit3($application);

//Read from resource file
$Unit3->loadResource(__FILE__);

//Shows the form
$Unit3->show();

?>




第一次写php有以下感受:
1 delphi4php的IDE很强,速度还是比较快的,并且有了vcl4php这样的强大武器以后,其他诸如zend的IDE可以彻底忘记了。delphi的IDE的流畅感觉只有vs可以相比。
2 $this->lblMsg 这样的对象写法,上来总是不适应,因为没有怎么好好看php5的书,后来看了几个例子,基本上明白了。其实和delphi原来的面向对象的体系几乎是一样的,只是语法不同而已,因为代码提示的速度很快,所以如果没有出来代码提示,就可以认为是写错了。
3 写$this很罗嗦,不知道有没有办法可以简化。
4 因为是面向对象的,所以只需要考虑其中的事件处理,上面的代码中只有两个内部的function的代码是写的,别的都是delphi自动生成。
5 以上程序有一个小错误,就是当Again按钮点击后,在请空text的值得时候,会发送一个submit,导致label显示wrong的信息。我想可以用一个表示状态的变量来进行全局控制。
6 每一句都要用; 结束,特别是在if中的语句,这点和pascal有些不同。
7 强大的IDE可以判断{}的层次,不至于出错。
8 感觉这样的例子写法几乎和windows原生程序没有什么差别。并且比起intraweb也简单很多。php到底很强啊,delphi则更强。
9 用向导生成的php代码送到dh和surpass上都不能正常运行。dh的出错信息好像是不支持inc.php这样的后缀,因为我不能修改dh上安装的php设置文件,只好有机会自己搭建一台apache的服务起来测试了。delphi4php自己在调试的时候用的就是apache,我想应该是设置上的问题。
10 据说delphi4php对于中文支持不好,还没有测试。
11 检查语法正确功能没有快捷键不太方便。

慢慢继续研究。

TAG: php delphi for delphi4php vcl php5

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-04-07  
  12345
6789101112
13141516171819
20212223242526
27282930   

数据统计

  • 访问量: 764
  • 日志数: 18
  • 建立时间: 2007-09-11
  • 更新时间: 2007-12-26

RSS订阅

Open Toolbar