使用Agavi進行MVC編程簡介,第4部分: 創建一個帶有多種輸出類型(XML、RSS 或SOAP)的Agavi搜索引擎
簡介
在本系列的第 3 部分中,您經歷了構建基於 Web 的應用程序時經常遇到的一個任務:實現一個允許管理員通過 Web 界面執行 CRUD 操作的管理模塊。您還探索了 Agavi 的安全模型,構建了用於驗證用戶的登錄系統,以保護對應用程序資源的訪問。
現在繼續 Agavi 學習,為這個 WASP(Web 汽車銷售平台)示例應用程序添加更多功能。您將實現一個搜索引擎,允許用戶直接搜索數據庫,獲取匹配特定條件的清單。而且,Agavi 為開發人員提供了一個復雜的框架,允許他們為應用程序輕松添加對多種輸出類型(XML、RSS 或 SOAP)的支持。本文將學習如何通過最少的編程支持從搜索引擎返回 XML 編碼的結果。
處理搜索標准
常用縮略詞
API:應用程序編程接口
CRUD:創建、閱讀、更新和刪除
CVS:並發版本系統
DOM:文檔對象模型
HTML:超文本標記語言
HTTP:超文本傳輸協議
MVC:模型-視圖-控制器
PDF:可移植文檔格式
RSS:真正簡易的聚合
URL:統一資源定位器
XML:可擴展標記語言
到目前為止,這個 WASP 應用程序可以接受經銷商提交的車輛清單並將其存儲在數據庫中以便批准。本系列第 3 部分開發的管理模塊允許管理員審查並批准這些提交的清單,以便在 Web 站點上顯示它們。管理員還可以定義每個清單在網站上顯示的時間長度。
要使潛在買家更容易地找到滿足他們需要的車輛,現在最好向應用程序添加一個搜索功能。這個搜索界面將接收來自買家的特定條件,搜索批准的清單以尋找滿足條件的汽車,最後顯示結果以進一步檢查。
首先,使用 Agavi 構建腳本向 Listing 模塊添加一個新的 SearchAction:
shell> agavi action-wizard
Module name: Listing
Action name: Search
Space-separated list of views to create for Search [Success]: Error Success
並且更新應用程序的路由表,為這個 Action 添加一個新的路由,如 清單 1 所示:
清單 1. Listing/SearchAction 路由定義
<?xml version="1.0" encoding="UTF-8"?>
<ae:configurations xmlns:ae="http://agavi.org/agavi/config/global/envelope/1.0"
xmlns="http://agavi.org/agavi/config/parts/routing/1.0">
<ae:configuration>
<routes>
...
<!-- action for listing pages "/listing" -->
<route name="listing" pattern="^/listing" module="Listing">
<route name=".create" pattern="^/create$" action="Create" />
<route name=".display" pattern="^/display/(id:\d+)$" action="Display" />
<route name=".search" pattern="^/search$" action="Search" />
</route>
...
</routes>
</ae:configuration>
</ae:configurations>