导言
weborb为PHP提供了一套灵活的远程执行。用weborb , PHP开发者能整合Flex客户端应用程序与部署在PHP中的对象应用。 此外, weborb为PHP可以作为一个FLASH Remoting的网关,从而支持FLASH客户端应用。
本指南提供了一个概述建立一个Flex客户利用Flex Builder的2.0和与之连接的同一个PHP应用。 结果该漫游是一个Flex应用沟通的一个PHP对象暴露透过weborb对于PHP 。
起步-weborb安装
确保下列软件安装在下载weborb对于PHP :
PHP5 or Zend Platform with PHP5 support或把php5的Zend平台,把php5支持
Any web server supporting PHP5 or later任何网络服务器支持把php5或更高版本
提取分配到归档的根源,你的web server 。一旦产品安装,你将看到下面的目录结构:
┬ WEBORB Installation directory
│
├── index.php ——- management console point of entry
│
├── /Services ——- contains deployed ‘remotable’ PHP classes
│
├── /Examples ——- contains examples shipped with WebORB
│
├── /Console ——- contains WebORB Management Console
│ │
│ ├─ index.php —– main console page
│ │
│ └─ weborb.php —– remoting entry point for the console
│
│
└── /Weborb ——- contains configuration, log and WebORB for PHP source code
│
├─ weborb-config.xml —– contains a reference to the /Services folder,
│ as well as other important weborb configuration
├─ weborb-log.txt —– weborb log file
│
└─ /WEB-INF
│
└─ /flex
│
├─ remoting-config.xml — configures Flex destinations
└─ services-config.xml — configures Flex RPC endpoint
如果你正在部署于Windows电脑与IIS,一定要给予读/写权限向iusr_ 账户用于/ weborb文件夹。
您可以验证安装运行weborb管理控制台包括与weborb分布。打开http://localhost/ [ weborb安装路径] / index.php在浏览器中。 当控制台加载,你可以查阅现有的PHP远程服务的使用管理统计表或掌管的例子包括与产品。
起步-营造一个F lex应用
Start Flex Builder 2.0 and select File -> New -> Flex Project.有一个对话窗口显示下面就会出现。 做出选择,如下图所示,并单击" Next > " 。
下一步的工作是非常重要,因为它确定了配置的路径。清除’使用默认位置.. ‘复选框。 ‘根文件夹’字段必须包含路径/文件夹weborb从weborb为PHP发行。 ‘root URL’字段必须包含一个URL指向同一/ weborb文件夹:
Click "Next >" to continue.点击"下一步" > " ,以继续进行。
下一步的工作是指定一个名称,将Flex项目。 进入" sampleflextophpproject "为项目名称,如下图所示,然后点击’下一步’继续下去。
最后一步,在Flex 项目创造是设置输出文件夹路径和输出文件夹中的网址。 上述两个值必须指向一个文件夹在网络服务器等级。 这是非常重要的两个’输出文件夹’和’输出文件夹中的URL ‘指向同一个目录。
点击’完成’ ,以最后完成项目建设。
Flex Builder 创造了一个空的Flex应用。 下面的步骤将指导,通过建立一个Flex应用和连接,它与一个PHP对象。
配置-Flex Builder
weborb对PHP产品分布载成品Flex应用演示flex能够weborb连接和远程调用。拷贝和粘贴的内容,该example.mxml文件位于
ExamplesSampleApp 实例 sampleapp
进入mxml创建的文件Flex Builder。该守则在应用连接到一个PHP对象,并检索出一些基本的计算机的信息当物体正在运行。
配置-weborb
Flex 应用需要申报的暴露班为"目的地" 。 目的地必须被配置在远程- config.xml文件位于WeborbWEB-INFflex文件夹。应用在这个例子中使用了" infoservice "目标之定义为:
InfoService
Flex Builder中读取配置文件,在编译的时候。
重要提醒:当您编译项目在挠性建设者,一定要查找的目录挠性建设者地方编译客户端应用。这是非常重要的地方,一本weborb.php到同一个目录下。 weborb.php必须包含下列PHP代码:
require_once("../Weborb/ORBHttpHandler.php");
$m_ORBHttpHandler = new ORBHttpHandler();
$m_ORBHttpHandler->processRequest();
?>
非常重要 :第一线, 必须经过剪辑后,以该点至weborb目录,从产品分布。举例来说,看看weborb.php坐落于 / 控制台文件夹
运行Flex应用
:当你运行该应用程序在Flex建设者时,它会打开一个浏览器和负荷应用:
应用连接到后端服务后,启动或当用户点击"发送请求"按钮:
代码审查
Flex应用宣布一项远程对象使用RemoteObject API:
remoteObject = new RemoteObject();
remoteObject.destination = "InfoServiceDestination";
remoteObject.getComputerInfo.addEventListener("result", onResult);
remoteObject.addEventListener("fault", onFault);
通知目的地的名称相匹配的目的地输入远程- config.xml文件。 当用户点击’获得计算机信息’按钮时,下面的函数执行一个远程方法调用:
private function getInfo():void
{
invokeButton.enabled = false;
currentUserText.text = "";
processIdText.text = "";
osText.text = "";
phpVersionText.text = "";
remoteObject.getComputerInfo();
}
当调用响应的情况下,灵活调用响应处理器在标签。 响应处理器在举例中,填充的文本字段与现有的数据,在返回的对象:
private function onResult(event:ResultEvent):void
{
var computerInfo:Object = event.result;
currentUserText.text = computerInfo.currentUser;
processIdText.text = computerInfo.phpProcessId;
osText.text = computerInfo.operatingSystem;
phpVersionText.text = computerInfo.phpVersion;
invokeButton.enabled = true;
}
源代码服务器端的对象是如下:
class InfoService
{
public function getComputerInfo()
{
$compInfo = new ComputerInfo();
$compInfo->currentUser = get_current_user();
$compInfo->phpProcessId = getmypid();
$compInfo->operatingSystem = php_uname( ‘a’ );
$compInfo->phpVersion = phpversion();
return $compInfo;
}
}
class ComputerInfo
{
public $currentUser;
public $phpProcessId;
public $operatingSystem;
public $phpVersion;
}