2013-07-29 94 views
22

也許這不是一個真正的問題,而是一個討論。我決定學習角度,使用一個簡單的任務,建立一個博客系統。我有幾個問題。 免得想象PHP應用程序將有MVC結構,所以我有一些問題:AngularJS和PHP後端

  • 我應該建立自己的後端僅作爲RESTFUL的應用程序,並在角和PHP中使用JSON響應\要求?
  • 如何在PHP應用程序中查看,我應該使用它們與ng-init?
  • 路由,服務器端還是客戶端?
  • 緩存怎麼樣?
  • 最後但並非最不重要的,我應該把關於用戶輸入數據的邏輯放在哪裏?

有人可以給我的指示或說明,關於這件事情,也許有用的鏈接來閱讀文章,結合PHP和角度,或者我可能以錯誤的方式做?

+0

btw認爲基於js的單頁網頁應用程序並不是seo友好的,博客本質上可能是這樣。 –

回答

29

您可能想將這種類型的應用程序視爲實際的兩個應用程序。

第一個是後端API。您可以使用您的PHP框架來構建一個API,使您可以擁有數據持久性,驗證(業務邏輯)等...並且現在忘記前端,您只是爲後端數據構建API。

該應用程序的第二部分是AngularJS前端。這包括客戶看到的所有視圖和所有內容。沒有一個來自後端。

這允許您使用後端API(PHP位)作爲數據存儲,並擁有自己的安全驗證,同時擁有來自AngularJS的無縫用戶體驗和基本客戶端驗證。

路由是AngularJS,因爲這是客戶端正在使用的實際前端。

緩存可以在後端完成(如果需要),您的API。

驗證將會發生在前端和後端,儘管如果需要的話它們可能會略有不同。請記住,您將後端嚴格構建爲API,而不考慮前端(就好像將有多個應用程序一樣),因此它將擁有自己的驗證規則和邏輯。

希望有所幫助。

+0

所以你建議使用PHP只作爲API?爲什麼它是一個糟糕的主意混合PHP視圖與角? – Cawa

+1

@СашаХарьков - 呃,我不確定我是否會說它本身就是一個壞主意,但從概念上講,它會引入比最初解決更多的混淆和維護問題。這個想法是AngularJS會爲你提供整個前端,它本身就是一個應用程序。後端API(在這種情況下是PHP)可以幫助用CRUD操作保存數據。分離它們有助於保持代碼的可維護性和可擴展性。 –

+1

建議用於構建此後端API的任何特定PHP框架? – domi

6

我發現了一個非常簡單的結構,它允許我利用Angular與PHP和restful api的結合。我使用Angularjs的所有意見。我使用了一個名爲slim的寧靜的PHP API框架來促進Angular和我使用Doctorine2的PHP模型之間的通信。

我的編碼的85%是用Angular(Views)完成的。 5%用API(控制器)完成,其餘10%用於配置模型中的業務邏輯。關注點大爲分離,開銷不大。簡單而簡潔。