我多年来一直在编写PHP代码。现在我有很多可重复使用的模块 - 至少对我来说。典型的老式开发者:D。但现在几乎每个人都在某种程度上使用烘焙即时框架,而我的模块不再可重复使用。大多数当前着名的框架,如CI,Zend,Cake等,以及应该更简单的微框架,如Fat-free,Silex,MicroMVC等,使用称为URL路由/ URL的方法重写等。
但是......你觉得这个花哨的 URL路由真的是必要的吗?
让我们考虑一下:
答案 0 :(得分:7)
这应该照顾你的“要点”。
是的,我们应该继续使用“漂亮的网址”,因为很多人在点击链接之前会先浏览完整的网址。当他们看到完整且易于理解的URL时,人们会更安全。
此外,相当多的专业PHP开发人员试图避免使用流行的框架。主要是因为在代码质量方面,所述框架的质量确实非常差(甚至Symfony2,它被认为是最好的,也有问题)。
仅仅因为您使用框架,它不会使您的应用程序更好。相反,你应该关注适当的OOP,遵循SOLID原则并遵守Demeter法则。 MVC只是另一种设计模式,它实际上解决了域业务逻辑表示的分离。
如果您想了解MVC,请通过 Martin Fowler 阅读GUI Architectures。
答案 1 :(得分:3)
最终,它归结为设计架构,特别是这些MVC
处理这种复杂的花哨方法需要多少工作?正则表达式解析使用相对较重的计算不是吗?它是不是很干嘛?
虽然启动重写引擎需要一些成本,但这些框架中的大部分都不会在路由中使用正则表达式。它只是盲目地将没有映射到现有资源的每个请求路由到控制器(例如index.php)并让它弄明白。话虽这么说,运行php可能会比重写引擎产生更大的影响。
多久写一次URL地址/手动输入?而不是点击书签和/或超链接?
不确定这是什么意思。键入(或记住)http://domain.com/post/intro-to-apache
比键入http://domain.com/post.php?post_id=141
更容易吗?
它真的对搜索引擎友好吗?我的意思是搜索引擎索引URL参数没有问题吗?
是的,确实如此,它会产生很大的影响。不仅如此,人们更容易看到链接是什么。
为什么Google,Facebook等大型网站仍在使用"路径?var1 = val1& var2 = val2& ..."?
在URI中使用post_id
与查询字符串q
之类的内容之间存在差异。前者是动态访问现有内容,后者是动态表单输入,可以是用户输入的任何内容。
编辑:只是一个注释,Facebook 进行URL重写,维基百科也是如此。它使人类可读的URL以及更好的SEO。
不同网络服务器上的不同设置如何?阿帕奇/ IIS / Nginx的/ Ligthy?比如将.htaccess移植到web.config和另一个??与更多解决方案相比,它不会产生更多问题吗? (用于调试等)
路由规则非常简单。框架为广泛使用的Web服务器提供了它。如果你想做一些自定义的事情,显然你必须解决这些路由规则,但你必须至少能够熟练掌握网络服务器的重写引擎。
答案 2 :(得分:0)
如果没有别的,拥有漂亮的URL是搜索引擎使用(可能部分仍然)重要的东西。如果您将链接发送给其他人,也会更好。