我通过
PHP& amp;有条件地向用户显示不同的页面,具体取决于URL. Mysql的.它目前是使用$_GET [‘page’]的简单PHP页面.我也使用htaccess URL重写使页面更多的SEO,Mysql的数据和Smarty作为我的模板引擎.
我正在考虑添加更多功能,并将其扩展到具有大量URL参数的完整的论坛/博客/群组.想切换到MVC框架,但它们远远超出我的需要,而且技术要多得多.然而他们告诉我关于路由器的事情,我意识到我的简单PHP页面正是这样的.我想保持这个路由器简单,所以使用switch语句获取预选页面的页面,默认为主页.虽然我决定不使用任何MVC使问题复杂化,但我仍然感到困惑并请求您对以下方面的看法:
这种方法是否正确?我读
A web application by its very nature is a series of small discrete
requests. If you send all of your requests through a single controller
on a single machine you have just defeated this very important
architecture.
在http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html,这增加了我的困惑!
这样安全吗?我看到大多数PHP路由器都使用某种正则表达式来检查清理参数.我只是用PHP开关做它!
它可扩展吗?我每天的流量不超过3000.这种路由器方法是否会减慢我的网站流量.
包含页面比重定向要好吗?由于我在此路由器之后重定向用户,有条件地,我想将PHP页面包含在PHP路由器本身中.哪种方法更好?
对不起,如果对某些人来说似乎很愚蠢,但我浪费了2天时间来了解MVC将如何帮助我,并发现如果没有MVC框架我感觉更好,只是担心,我是否做得对!
最佳答案 我实际上和你有过相同的经历.我使用了与你非常相似的方法.我把所有的活动都转到我的路由器PHP文件中,然后从那里解析URL并调用需要调用的控制器.另外,要调用我的页面,我只需要执行一个包含,这不会影响性能.该系统似乎适用于路由.
总而言之,如果您想扩展网站,我会鼓励您真正查看一个框架.我并不是说你不能用你所得到的东西来扩展,但是道路将会更长.这只是因为你将不得不做或重复框架正在做的事情.我推荐一个轻量级的框架,比如Yii Framework.在你承诺之前,我会鼓励你稍微玩一下,看看是否一切都有意义.如果确实如此,那么升级到它的时间和精力是值得的.我为我的网站做了同样的事情,我能够非常快速地添加新功能.
>是的,你的方法是正确的.
>这一点很安全.您需要自己验证参数并在运行查询时执行SQL注入转义.同样,这是构建在框架中的东西,为什么要自己呢?虽然很容易做到.
>是的,它可以扩展;框架运行相同类型的模式.只要你有硬件来支持它,它就没事了.
>是的,包括比重定向更好,因为它不必向您的服务器发出另一个请求,而是在同一个请求上运行它.
至于你的最后一点:两天可能还不足以学习整个MVC架构. 3年前,我经历了同样的工作.这是非常痛苦的,但几个星期后,我注意到我能够更有条理地使用我的代码并且没有遍布整个地方的SQL查询.我尝试了几个框架:Cake,Zend,Symphony和Yii.我选择了Yii,因为它对我来说似乎是最好的.