PHP 中的 SaaS:Yahoo 新闻服务教程
NetBeans IDE 支持 PHP 中的服务型软件 (SaaS) 应用程序。SaaS 指的是一个软件应用程序传递模型,软件供应商通过它开发 Web 性质的软件应用程序,并承载和运行供其客户通过 Internet 使用的应用程序。SaaS 是一个越来越普及的软件功能提供模型,因为无论从成本角度,还是从客户硬件资源角度而言,它都很经济划算。通过在 Netbeans 6.5 中使用 SaaS PHP 支持,PHP 开发者可以使用广受欢迎的 Web 服务,如 Google 地图、Yahoo 新闻等等。具体操作很简单,只需将这些服务从 IDE 的“服务”窗口拖放到 PHP 文件中即可。
本教程使用 Yahoo 新闻搜索服务来演示 SaaS PHP 支持。
目录

要学习本教程,您需要具备以下软件和资源。
安装和设置 PEAR 包
要在 PHP 中使用 SaaS 服务,必须安装 PHP Extension and Application Repository, (PEAR)(PHP 扩展和应用程序资源库)。安装 PEAR 后,请将 PEAR 的路径包括在 php.ini 文件的 include_path 变量中。然后安装下列 PEAR 包:
- Http_Request
- Net_URL
- Net_Socket
安装和设置 PEAR 的过程因所使用的操作系统以及已安装的 AMP 包(如果有的话)而异。例如,要在 Xampp 包中安装 PEAR,请执行以下操作:
- 运行 Xampp go-pear 脚本(位置因操作系统而异)以安装 PEAR。这会创建一个 PEAR 目录(位置同样因操作系统而异)。
- 打开 php.ini,将新创建的 PEAR 目录的路径添加到操作系统的 include_path 变量中。取消注释 include_path(如果它已被注释掉)。例如,当在 MacOS 上使用 Xampp 时,include_path 变量为:
include_path=".:/Applications/xampp/xamppfiles/lib/php:/Applications/xampp/xamppfiles/lib/php/pear"
在 Windows 上使用 Xampp,且 Xampp 安装到 G:/ 的根目录时,include_path 变量为:
; Windows: "\path1;\path2"
include_path = ".;G:\xampp\php\pear\"
- 可以选择将 PEAR 的路径添加到 Path 环境变量(在 Windows 上)。
- 在 PEAR 目录中打开一个命令提示窗口,并运行命令 pear install Http_Request。这会安装 Http_Request 包以及 Http_Request 所依赖的任何包,其中包括 Net_URL 和 Net_Socket。如果这些包已安装,则 PEAR 将返回“不安装任何组件”。
创建 PHP 项目
设置 PHP 和 PEAR 后,将创建使用 Yahoo 新闻服务的 PHP 项目。
要创建此项目,请执行以下操作:
- 选择“文件”>“新建项目”。在“类别”下,选择 "PHP"。在“项目”下,选择“PHP 应用程序”,然后单击“下一步”。将打开“名称和位置”页。

- 将项目命名为 YahooNewsApp。将它保存在 NetBeansProjects 文件夹中。单击“下一步”。此时将打开“运行配置”页。

- 在“运行方式:”下拉列表中,选择“本地 Web 站点(在本地 Web 服务器上运行)”。在“项目 URL”文件夹中,键入 http://localhost/news。选择“将源文件夹中的文件复制到其他位置”。在“复制到以下文件夹”字段旁边,单击“浏览”。此时将打开“选择文件夹位置”对话框。
浏览到在 localhost 上的该位置公开 php 文件的父文件夹。对于 Xampp,这是 XAMPP_HOME/xampp/htdocs。新建一个名为 news 的子文件夹。单击“打开”,对话框关闭。news 文件夹的路径现在显示在“运行配置”页的“复制到以下文件夹”字段中。单击“完成”。
IDE 创建项目,并将源文件夹复制到 Web 服务器在其中公开这些源文件夹的目录。项目的 index.php 文件在编辑器中打开。打开文件资源管理器,检查 index.php 是否已复制到正确的目录。

添加并运行 Yahoo 新闻 Web 服务
将 SaaS 操作添加到 PHP 文件中,方法是:将该操作从“服务”窗口中的 Web 服务管理器拖放到 PHP 文件的主体中。
要将 Yahoo 新闻服务添加到您的 PHP 项目,请执行以下操作:
- 在 IDE 中,在编辑器中打开项目的 index.php 文件,并打开“服务”窗口。
- 在“服务”窗口中,展开“Web 服务”节点,定位到 "Yahoo" >“新闻搜索服务”> "[newsSearch]" >“搜索”。

- 在编辑器中,从 index.php 中删除现有的 <?php...?>。将搜索操作从“服务”窗口拖放到 index.php 的 <body> 元素中。将打开一个用于设置输入参数初始值的对话框。

- 可以将所有输入参数保留为缺省值。"query" 参数指您所搜索的新闻报道主题,可以设置为任意值。在本示例中,它设置为 "php",因此该服务将搜索有关 PHP 的报道。您可以将它设置为 "NetBeans"、"football" 等等。完成后,单击“确定”。IDE 以您选定的参数将用于调用 Yahoo 新闻搜索服务的 PHP 插入 index.php 的主体中。
<body>
<?php
require_once "org_netbeans_saas_yahoo/YahooNewsSearchService.php";
?>
<?php
$query = "php";
$type = "all";
$results = 10;
$start = 1;
$sort = "rank";
$language = null;
$output = "xml";
$callback = null;
$result = YahooNewsSearchService::search($query, $type, $results, $start, $sort, $language, $output, $callback);
echo $result->getResponseBody();
?>
</body>
- 对 PHP 进行定制,使它以引人入胜且可读性良好的格式显示输出。否则,在运行文件时,浏览器将以不换行形式显示所有新闻项目。在下面的示例中,echo $result->getResponseBody(); 一行被注释掉,并添加了新的输出代码。
//Comment this line
//echo $result->getResponseBody();
//Add the following lines to display the news nicely.
$xml = $result->getDataAsXml();
echo "<h2>Yahoo news search results for ".$query."</h2>";
foreach ($xml->Result as $item) {
echo "<a href=\"".$item->Url."\" target=\"_blank\">".$item->Title."</a><br/>";
echo $item->Summary."<br/><br/>";
}
- 配置 API 密钥。Yahoo 新闻搜索不需要 API 密钥,但是您仍然需要传递一个非 null 值。在“项目”窗口中,展开 org_netbeans_saas_yahoo 包,并在编辑器中打开 YahooNewsSearchAuthenticatorProfile.php。为 $api_key 变量键入任意非 null 值。

- 启动 PHP 引擎。
- 在“项目”窗口中,右键单击 index.php,从上下文菜单中选择“运行”(Shift-F6)。将打开一个浏览器窗口,其中显示与 "query" 参数值匹配的所有新闻结果。

另请参见
有关使用 NetBeans IDE 开发 PHP 项目、REST 风格的 Web 服务、SaaS 以及其他 Java EE 应用程序的详细信息,请参见下面的资源:
要发送意见和建议、获得支持以及随时了解 NetBeans IDE Java EE 开发功能的最新进展,请加入 nbj2ee@netbeans.org 邮件列表。