2011-12-30 96 views
1

我正在嘗試構建基於REST的Web服務,該服務提供貨幣轉換功能。基於PHP REST的Web服務提供貨幣轉換功能

請注意,我是面向OO PHP的初學者,所以這對我來說都是新的和相當混亂的。

我想要的服務接收URL的編碼爲:

http://www.mysite.com/conv/?amnt=7.15&from=GBP&to=USD

,我希望它在瀏覽器中返回結果爲XML消息。顯然,處理錯誤也需要照顧。

我已經閱讀了許多在線教程,並明白我將使用GET來實現我想要實現的功能。最讓我困惑的是如何構建我的PHP文件(採用OO格式)以及如何在默認索引頁面上實際輸出這些結果。

回答

1

這是什麼需要OOP在這裏?

只有當它是一個自主教育的項目。我想你應該使用類似MVC模式,有大量的文檔資料擺在那裏,只是(here)翻譯模型轉換爲面向對象的PHP類,並且不是把它變成某種方式是這樣的:

  • 的lib/
    • 核心/ - 核心類,如控制器,請求,響應等
    • 赫普勒/ - 其中赫普勒的職能分配文件
  • 配置/ - 配置您的數據庫連接,以及其他
  • 模型/ - 你OOP模型
  • 圖/ - html模板
  • web/ - DOCUMENT_ROOT,其中c SS,JS,圖片,和你的控制器接入點中的分配
  • 日誌/ - 登錄目錄,如果你需要一個
  • 緩存/雖然,如果你需要。

爲便於瀏覽,文件應該命名爲* .class.php,如果有任何繼承,它將是* .base.class.php或* .module.class。PHP

基本規則是:

每個文件
  • 一類
  • 如果您使用的命名空間(推薦),那麼你建議立即進行刪除以同樣的方式作爲namesapces分配文件,以方便自動加載( spl_register_autoload())
  • 獨立的lib對每個功能

在你的索引文件中,只有3-4行,你在這裏構建你的項目根類(控制器),然後在你的控制器內部處理請求,然後進入你請求的模塊,然後進入視圖,您的系統輸出結果。

OOP在MVC框架中有很大的覆蓋,如Symfony,你應該看看那裏。

+0

謝謝。這在結構上有很大幫助。我也很困惑什麼類需要我想要實現的。我想第一個類是檢測它是否是GET請求,如果郵件編碼正確,請運行貨幣轉換函數。我該如何解決這個問題,以及如何將錯誤管理集成到那個中?對不起,我很新,所以原諒我的問題是多麼的基本。 – tctc91 2011-12-30 16:18:10

+0

基本類必須是Controller(controller.class.php),Request(request.class.php),Response(response.class.php)。在入口點你應該創建$ controller = new Controller('index');在__construct()方法中,您需要初始化Request類的一個實例。會有一個方法,名稱是($ type),它會給出問題的答案是什麼類型的請求。 [如何](http://stackoverflow.com/questions/359047/php-detecting-request-type-get-post-put-or-delete),如果一切正常,將$ _GET var放在本地類存儲中工作用。你也需要獲得方法($ what),以獲得參數。 – devdRew 2012-01-02 07:59:29

0

作爲Restler(基於PHP的RESTful API服務器)框架的作者,我想建議您嘗試Restler。它採用了不同的和更簡單的方法,完全符合您的賬單。它將您的類的公共方法公開爲API。

BMI Example和其他活的例子應該讓你在任何時間開始