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
邮件列表 。