我有条件地向用户显示不同的页面,具体取决于通过PHP和& Mysql的。它目前是使用$_GET['page']
的简单PHP页面。我还使用htaccess URL rewrite
使页面更多SEO,Mysql用于数据,Smarty
作为我的模板引擎。
我正在考虑添加更多功能,并将其发展为包含大量网址参数的完整版论坛/博客/群组。想切换到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框架,我感觉更好,只是担心,我是否做得对!
答案 0 :(得分:2)
我实际上和你一样有过相同的经历。我使用了与你非常相似的方法。我把所有的活动都转到我的路由器PHP文件中,然后从那里解析URL并调用需要调用的控制器。另外,要调用我的页面,我只需执行include
,这不会影响性能。这个系统似乎适合路由。
所有这一切,如果你想扩展一个网站,我会鼓励你真正检查一个框架。我并不是说你不能用你所得到的东西来扩展,但是道路将会更长。这只是因为你将不得不做或重复框架正在做的事情。我推荐一个轻量级的框架,比如Yii Framework。在你承诺之前,我会鼓励你稍微玩一下,看看是否一切都有意义。如果确实如此,那么升级到它的时间和精力是值得的。我为我的网站做了同样的事情,我能够非常快速地添加新功能。
至于你的最后一点:两天可能还不足以学习整个MVC架构。 3年前,我经历了同样的工作。这是非常痛苦的,但几个星期后,我注意到我能够更有条理地使用我的代码并且没有遍布整个地方的SQL查询。我尝试了几个框架:Cake,Zend,Symphony和Yii。我选择了Yii,因为这对我来说似乎是最好的。