我看到許多網站的MVC實現有一個單一入口點,如index.php文件,然後解析URL以確定要運行哪個控制器。這對我來說似乎很奇怪,因爲它涉及到必須使用Apache重寫來重寫URL,並且有足夠的頁面使單個文件變得臃腫。爲什麼應該爲網站MVC需要單點輸入?
爲什麼不相反只是讓單個頁面成爲控制器?我的意思是,如果您的網站上有一個列出所有註冊會員的頁面,那麼頁面導航的members.php
將成爲會員的控制器。這個php文件將查詢成員模型中的數據庫成員列表,並將其傳遞給成員視圖。
我可能會錯過一些東西,因爲我最近才發現MVC,但這個問題一直在困擾着我。這種設計不是最好的,因爲它沒有一個臃腫的入口文件,所有的頁面都不直觀地調用模型,並且包含,封裝並從各自的頁面調用特定頁面的視圖?
你是什麼意思*臃腫*?可能做錯了什麼...... – 2011-04-08 14:26:26
它背後的理念是你有例如100條有100個唯一永久鏈接的文章,所有這些都是通過單一控制器動作顯示的,只有一條路徑。從根本上說,你可能擁有儘可能多的路線(通常與控制器操作一樣多),並且我沒有看到任何缺點。那麼你將只有一個.htaccess路由通向index.php,然後你應用你的路由配置和檢查。如果我只是一味地解釋這個問題,不是很確定,但是經過一番努力之後,你就會明白這些利益主體。 – 2011-04-08 14:30:07
您可以使用除重寫紙之外的其他方式實現虛擬資源。特別是你可以使用php腳本sans文件擴展名,並使用PATH_INFO,因爲它在前端控制器之前完成。這種方法與MVP btw更隱約相關。 – mario 2011-04-08 14:31:30