使用PHP的路由好或坏主意?

时间:2014-02-03 15:01:11

标签: php mysql .htaccess

我有条件地向用户显示不同的页面,具体取决于通过PHP和& Mysql的。它目前是使用$_GET['page']的简单PHP页面。我还使用htaccess URL rewrite使页面更多SEO,Mysql用于数据,Smarty作为我的模板引擎。

我正在考虑添加更多功能,并将其发展为包含大量网址参数的完整版论坛/博客/群组。想切换到MVC框架,但它们远远超出我的需要,而且技术要多得多。然而他们告诉我关于路由器的事情,我意识到我的简单PHP页面正是这样的。我想保持这个路由器简单,所以使用switch语句将预选pagedefault的页面转换为主页。虽然我决定不使用任何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 个答案:

答案 0 :(得分:2)

我实际上和你一样有过相同的经历。我使用了与你非常相似的方法。我把所有的活动都转到我的路由器PHP文件中,然后从那里解析URL并调用需要调用的控制器。另外,要调用我的页面,我只需执行include,这不会影响性能。这个系统似乎适合路由。

所有这一切,如果你想扩展一个网站,我会鼓励你真正检查一个框架。我并不是说你不能用你所得到的东西来扩展,但是道路将会更长。这只是因为你将不得不做或重复框架正在做的事情。我推荐一个轻量级的框架,比如Yii Framework。在你承诺之前,我会鼓励你稍微玩一下,看看是否一切都有意义。如果确实如此,那么升级到它的时间和精力是值得的。我为我的网站做了同样的事情,我能够非常快速地添加新功能。

  1. 是的,你的方法是正确的。
  2. 这一点很安全。您需要自己验证参数并在运行查询时执行SQL注入转义。同样,这是构建在框架中的东西,为什么要自己呢?虽然很容易做到。
  3. 是的,它可以扩展;框架运行相同类型的模式。只要你有硬件来支持它,就可以了。
  4. 是的,包括比重定向更好,因为它不必向您的服务器发出另一个请求,而是在同一请求上运行它。
  5. 至于你的最后一点:两天可能还不足以学习整个MVC架构。 3年前,我经历了同样的工作。这是非常痛苦的,但几个星期后,我注意到我能够更有条理地使用我的代码并且没有遍布整个地方的SQL查询。我尝试了几个框架:Cake,Zend,Symphony和Yii。我选择了Yii,因为这对我来说似乎是最好的。