PHP能参与桌面项目吗?适合吗?——C#客户端 嵌入 PHP 一例
来源:互联网 发布:软件sp版是什么意思 编辑:程序博客网 时间:2024/05/20 08:26
继Python和Ruby能集成C#后,现在PHP也可以嵌入到C#中了。下载(含应用程序源代码和PHP5的dll):Part1 Part2
先看程序界面
再看PHP代码:
- <?php
- function OnDNButton1Click() {
- $textBox1=dsRE_GetSharedObject(NULL,"WinApp1.Form2.textBox1");
- $textBox1->Text="Clicking button1";
- }
- function OnDNButton2Click() {
- $textBox1=dsRE_GetSharedObject(NULL,"WinApp1.Form2.textBox1");
- $textBox1->Text="Clicking button2";
- }
- ?>
- <?php
- $ds=new dsRE();
- $window=$ds->GetSharedObject("WinApp1.Form2"); //-->>获得共享对象,C#对象进入PHP之关键
- $window->Show();
- $Button1=$ds->GetSharedObject("WinApp1.Form2.button1");
- $ds->RegistMethod("OnDNButton1Click",$Button1,"Click");
- $Button2=$ds->GetSharedObject("WinApp1.Form2.button2");
- $ds->RegistMethod("OnDNButton2Click",$Button2,"Click");
- ?>
核心问题:C#对象如何跨语言进入PHP的呢?
对象的跨语言进入是脚本语言嵌入到编译语言的核心问题,无论Python嵌入到C#或者C/C++,还是JavaScript嵌入到浏览器(window和document等对象可以在js中使用就是这个核心问题的起点),还是C++集成PHP或者Python,都离不开这样的一个核心问题:编译语言的对象如何进入脚本,而脚本的类或者对象又如何被编译语言使用。
1 C#对象设为共享对象
- SharedAllFormControl("WinApp1",new Form2());
- $window=$ds->GetSharedObject("WinApp1.Form2");
然后操作它 Show ,对于 button 来说就用 RegistMethod 委托 Click 事件。
对照 JavaScript (MS Script)来说,request=newActiveXObject("Microsoft.XMLHTTP");这样的语句可以使COM类进入到脚本,还不是把现有对象进入到脚本。对于IronPython来说,python_engine.Globals["o"]=my_class_instance;用全局字典的途径可以使C#对象进入Python中。
至于C++对象进入脚本语言,各自的开发文档都有说明,而且必然支持,这里不再赘述。
后篇:
PHP脚本可以从文件装入,也可以内置在C#程序中,也可以从服务器传来。如果PHP脚本是由服务器传过来的,则可以使客户端更“软”,客户端随时按需由服务器改变,C/S拥有了B/S的最大优点;如果PHP脚本是从文件装入,客户端可以由现场维护工程师就地增加或者修改功能,即时得到客户反馈,提高满足客户要求的效率。
在 C# 嵌入 Python 不大流行的情况下,嵌入 PHP 也许是个突破口,毕竟 PHP 比 Python 使用更为广泛。
- PHP能参与桌面项目吗?适合吗?——C#客户端 嵌入 PHP 一例
- PHP适合做大型网站吗?
- MVC真的适合PHP吗?
- PHP学习(3)—在HTML中嵌入PHP
- PHP SOAP服务器端C#客户端
- 零基础能学好PHP吗?
- 没有基础,能学PHP开发吗?
- PHP 能和 ACCESS 连接吗???
- 请问现在PHP格式网站怎么样,适合百度优化吗?
- php学习心得(适合php初学者)
- 【PHP项目部署一】PHP环境配置
- flash嵌入php脚本
- php嵌入html
- php内容嵌入html
- PHP客户端与C#服务器端 Socket通信
- PHP服务端项目开发经历——解决Android客户端中多图片上传的问题
- Hprose for php(三)——客户端
- PHP 自搭建项目 一
- ASP.net(c#)生成条形码
- Special Edition Using Microsoft? SharePoint Portal Server
- Eclipse Rich Client Platform : Designing, Coding, and Packaging Java
- SplitterWnd的可复用基类
- Effective XML: 50 specific ways to improve your XML
- PHP能参与桌面项目吗?适合吗?——C#客户端 嵌入 PHP 一例
- Essential XML: beyond markup
- Imperfect XML : Rants, Raves, Tips, and Tricks
- Eclipse IDE Pocket Guide
- Advanced DBA certification guide and reference for DB2 universal database v8 for Linux, UNIX, and Wi
- 让TextBox只允许输入数字
- SQL Server 返回最后插入记录的自动编号ID
- CMMI distilled: a practical introduction to integrated process improvement
- The Ruby Way