我使用php,並且通常將我的應用程序構造到模型視圖控制器中,因此它總是通過帶有類和方法屬性的index.php進行訪問。作爲URL的一部分傳遞的Class屬性指定控制器類和方法調用的簡單方法。這似乎很常見,但是我在確定我要創建哪些控制器時總是遇到麻煩。什麼是決定應該創建什麼控制器的最好,最簡單和最適用的方法?我知道它取決於Web應用程序本身,但必須通過一些通用的思維方式來啓動此過程。如何決定Web應用程序的控制器?
2
A
回答
2
我發現基於您的應用程序對象的樓宇控制器效果很好,並且可以處理您希望爲您的應用程序執行的大多數操作。
看看SO--有以/ questions,/ tags,/ users等開頭的URL。我建議通過爲每個對象創建一個不同的控制器來開始設計。 /問題(或/問題/列表)返回所有問題的列表。/questions/[0-9] +使用該ID號返回特定問題的詳細信息。/questions/ask返回Ask Question界面。
隨着您繼續構建應用程序,您可能會發現基於控制器的對象方法並不能滿足您的所有需求。例如,在我的網站(http://www.wysiap.com)上,我最終創建了一個/ list控制器來簡化我的Grails URL映射。但在大多數情況下,我確實使用了這種方法,很容易找出哪個控制器應該做不同的動作。
0
我建議您考慮一下您的應用程序需要的頁面以完成所有請求的任務。您將在同一頁面上分組類似的任務,並根據需要創建多個頁面。一個頁面可以在不同的視圖中切片,以便進行特定的操作。
考慮到這一點,你可以有一個控制器每頁。頁面的每個視圖都可以在控制器中擁有自己的方法(操作)。並且在每個視圖的方法中,您可以有一個switch()
,這將使您可以有多個視圖任務。例如:
- 的index.php(控制板控制器)
- /問題列表(QuestionList控制器,動作指數,顯示整個頁面)
- /問題列表/添加(QuestionList控制器,動作添加, (profile控制器,動作索引)
- /profile/edit(Profile控制器,動作編輯,管理所有的爲您的個人資料要求的任務)
- ...
我這樣設計我的大多數Web應用程序和使用Zend-Framework
相關問題
- 1. Spring Boot Web應用程序 - 重定向控制器
- 2. Web應用程序的訪問控制
- 3. Ember-綁定控制器值到應用程序控制器
- 4. 從Web應用程序(ASP.Net)遠程控制Android應用程序
- 5. Web應用程序工作流程中的控制器Servlet
- 6. 如何決定部署Web應用程序的硬件
- 7. 從控制檯到Web應用程序
- 8. Web應用程序「取」控制電腦
- 9. 如何監控java web應用程序
- 10. 控制WinForms應用程序從Web應用程序
- 11. Web應用程序到控制檯應用程序?
- 12. 如何處理Web應用程序的版本控制
- 13. 如何控制Dancer Web應用程序的部署?
- 14. 如何處理Web應用程序的版本控制?
- 15. 如何控制Android/iPhone Web應用程序的屏幕方向
- 16. 如何將webview控制器重定向到iphone應用程序?
- 17. 從任何應用程序控制器
- 18. 定製的ivr web應用程序
- 19. 可定製的Web應用程序
- 20. JSP URL映射到使用JSP的Web應用程序特定的控制器
- 21. Spring MVC web應用程序 - 啓用/禁用屬性控制器
- 22. 如何解決jquerymobile web應用程序定位到橫向
- 23. Web應用程序UI中的遊戲控制器
- 24. Ruby - 如何控制外部進程並監控Web應用程序的輸出?
- 25. 修訂控制在Web應用程序編輯器中使用
- 26. 使用桌面應用程序控制Web瀏覽器
- 27. 如何在web api控制器中獲取應用程序池的標識
- 28. 如何在JavaEE Web應用程序中包含Groovy控制檯
- 29. 如何從Web應用程序控制Linux java cron作業?
- 30. 決定應用程序完成加載前的初始視圖控制器