【发布时间】:2014-02-27 03:07:27
【问题描述】:
我通过 PHP 和 Mysql 有条件地根据 URL 向用户显示不同的页面。它目前是使用$_GET['page'] 的简单PHP 页面。我还使用htaccess URL rewrite 使页面更具SEO,Mysql 用于数据,Smarty 作为我的模板引擎。
我正在考虑添加更多功能并将其发展为具有大量 URL 参数的成熟论坛/博客/组。考虑切换到 MVC 框架,但它们比我需要的要多得多,而且技术性要强得多。然而他们告诉我路由器,我意识到我的简单 PHP 页面就是这样工作的。我想让这个路由器保持简单,所以我使用 switch 语句来获取预先选择的 page 和 default 的页面到主页。虽然我决定不使用任何 MVC 使事情变得不必要地复杂化,但我仍然感到困惑并请求您对以下方面的看法:
1.这种方法正确吗?我读过
Web 应用程序本质上是一系列小的离散的 要求。如果您通过单个控制器发送所有请求 在一台机器上你刚刚击败了这个非常重要的 架构。
http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html 这增加了我的困惑!
2。这种方式安全吗?我看到大多数 PHP 路由器使用某种正则表达式来检查参数以进行清理。我只是用PHP switch 来做这件事!
3.它可扩展吗?我没有太多的流量,每天最多 3000。这种路由器方法会因更多流量而减慢我的网站速度吗?
4.包含页面比重定向更好吗? 因为我是redirecting 这个路由器之后的用户,有条件地,我想include PHP 在 PHP 路由器本身中页面它。哪种方法更好?
对不起,如果这对某些人来说似乎很愚蠢,但我浪费了 2 天时间来了解 MVC 将如何帮助我,并发现没有 MVC 框架我会更好,只是担心我是否做对了!
【问题讨论】:
-
1.不要听从 Rasmus Lerdorf 的建议,2. 很可能,提供的路由器只做 routem,3. 取决于路由器。如果它是具有很多功能的重型路由器,它可能无法扩展,但应用程序的其他部分将成为瓶颈,并且 4. 包含 总是 比重定向更好
-
为什么不试试 Codeigniter,最好的 MVC(对我来说)。它使路由变得轻而易举。
-
@Houssni,Rasmus Lerdorf 是 PHP 的创造者。
-
您不需要重定向或包含文件。只需创建一个正确控制器的实例并执行他的方法之一(通常称为“动作”)
-
@Chris 为什么听取他的建议是个坏主意?大声笑