这篇文章的背景是Flex+PHP进行整合Web开发。
Flex PHP RIA 富客户端调试技巧可分为
在服务端对PHP进行调试,
在客户端对Flex进行调试,
但是在服务端和客户端之间怎样对通信进行检测?
我们在实际的项目开发中遇到一类特殊的问题,
确认客户端已经发出了请求,确认服务端一定会对请求进行响应
可是客户端有时偶然就是没有拿到响应的数据,是什么原因?
推荐以下工具,它能对在服务端和客户端之间的通信数据进行检测和监控。
Charles:http://www.charlesproxy.com/
ServiceCapture:http://kevinlangdon.com/serviceCapture/
可以看到响应的AMF格式的数据,如果抛出异常,则响应不正确;有了这些工具就可以实时发现通信中的问题了。
这两个工具都是收费的。但是都有7天或者30天的试用期。我使用了一下,还是比较简单方便的。
服务端:
1.使用php的logging方式。
修改php.ini文件:
log_errors = On
error_log = C:\some-directory-path\errors.txt
2通过log('日志内容')记录日志内容。
3.可通过NetBeans的xdebug或者PhpEd的dbgListener结合IDE工具进行调试。
客户端:
1.在flex新建Flex工程,指定服务端为php,指定好相应的路径。
2.在php.ini里设置include_path = ".;C:\wamp\www\应用名称\";
3.发现有文件报错,需要新建一个service,操作如下:
选择菜单:数据-》连接 php...->配置PHP服务->选择服务端一个Service路径如下:
home\应用名\src\services\company\ServiceBasic.php;
生成相应的service服务,然后在菜单:窗口-》数据/服务中删除已经生成的Service。
【这一步操作只是为了生成调用service必需的库文件。】
4.检查编译路径下amf_config.ini里定义的webroot路径是否正确。
5.在客户端Flex里的"数据/服务"单步调试服务端的Service提供的Method
说明:一般可以从源开发者的以下目录:.model/应用名.fml覆盖本地相应目录文件。
即可使用以前定义的Service调试方法。
6.在flex内单步debug需要下载flash player debug。可以通过google关键字搜索一下,以下是推荐路径:
http://www.adobe.com/support/flashplayer/downloads.html
下载IEDebug :Download the Windows Flash Player 10.3 ActiveX control content debugger
http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_ax_debug.exe
下载Firefox Debug:Download the Windows Flash Player 10.3 Plugin content debugger
http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_plugin_debug.exe