1

我多年来一直在编写 PHP 代码。现在我有很多可重用的模块——至少对我来说是这样。典型的经典老式开发人员:D。但是现在几乎每个人都使用烘焙即时框架,并且我的模块不再可重用——在某种程度上。目前大多数著名的框架,如CI、Zend、Cake等,以及应该更简单的微框架,如Fat-free、Silex、MicroMVC等,都使用了URL路由/URL重写等方法。

但是……你认为这种花哨的 URL 路由真的有必要吗?

让我们考虑一下:

  • 处理这种复杂的奇特方法需要多少工作?正则表达式解析使用相对繁重的计算不是吗?值得吗?
  • 我们多久手动编写一次 URL 地址/键入它?而不是点击书签和/或超链接?
  • 它真的对搜索引擎友好吗?我的意思是搜索引擎索引 URL 参数不好吗?
  • 为什么 Google、Facebook 等 BIG 网站仍在使用“path?var1=val1&var2=val2&...”?
  • 不同网络服务器上的不同设置怎么样?Apache/IIS/Nginx/Lightthy?例如将 .htaccess 移植到 web.config 和另一个?它不是比更多的解决方案带来更多的问题吗?(用于调试等)

你怎么看?我们应该继续使用那个花哨的URL 路由吗?或者我们最好用 [更简单的] 请求参数回到 [web] 自然?任何回应表示赞赏。

4

3 回答 3

7
  • 通过使用 APC 减轻通过正则表达式运行 URL 的计算成本
  • 这与手动 URL 输入无关
  • 是的,它对搜索引擎优化有影响
  • 因为他们必须保存每一次失败,所以您的网站每天没有数十亿的请求
  • 这实际上就是为什么使用前端控制器而不是 .htaccess 来解析 URL

那应该照顾你的“点”。

是的,我们应该继续使用“漂亮的 URL”,因为很多人在点击链接之前都会浏览完整的 URL。当人们看到完整且易于理解的 URL 时,他们会感到更安全。

此外,相当多的专业 PHP 开发人员试图避开流行的框架。主要是因为就代码质量而言,所述框架的质量非常非常糟糕(即使是被认为是最好的可用框架之一的 Symfony2 也存在问题)。

仅仅因为你使用了一个框架,它并不能使你的应用程序变得更好。相反,您应该专注于正确的 OOP,遵循 SOLID 原则并遵守得墨忒耳法则。MVC 只是另一种设计模式,它实际上解决了领域业务逻辑表示的分离。

如果您想了解 MVC,请阅读Martin FowlerGUI Architectures

于 2012-07-18T19:35:00.287 回答
3

最终,它归结为设计架构,特别是这些,MVC

处理这种复杂的奇特方法需要多少工作?正则表达式解析使用相对繁重的计算不是吗?值得吗?

虽然启动重写引擎有一点成本,但这些框架中的大多数不在其路由中使用正则表达式。它只是盲目地将每个未映射到现有资源的请求路由到控制器(例如 index.php)并让它自己解决。话虽如此,对运行 php 的影响可能比对重写引擎的影响更大。

多久手动写一次 URL 地址/输入?而不是点击书签和/或超链接?

不确定这是什么相关性。http://domain.com/post/intro-to-apache输入(或记住)比输入更容易http://domain.com/post.php?post_id=141吗?

它真的对搜索引擎友好吗?我的意思是搜索引擎索引 URL 参数不好吗?

是的,确实如此,而且影响很大。不仅如此,人们更容易看到链接是什么。

为什么 Google、Facebook 等 BIG 网站仍在使用“path?var1=val1&var2=val2&...”?

post_id在 URI 中使用 a 与q在查询字符串中使用 a是有区别的。前者是动态访问现有内容,后者是动态表单输入,可以是用户输入的任何内容

编辑:请注意,Facebook确实会进行 URL 重写,维基百科也是如此。这是为了使 URL 具有人类可读性以及更好的 SEO。

不同网络服务器上的不同设置怎么样?Apache/IIS/Nginx/Lightthy?例如将 .htaccess 移植到 web.config 和另一个?它不是比更多的解决方案带来更多的问题吗?(用于调试等)

路由规则非常非常简单。这些框架为广泛使用的网络服务器提供了它。如果你想做一些自定义的事情,显然你必须绕过这些路由规则,但首先你必须至少熟练掌握网络服务器的重写引擎。

于 2012-07-18T19:45:58.523 回答
0

如果不出意外,拥有漂亮的 URL 对搜索引擎来说是使用(并且可能部分仍然是)重要的东西。如果您将链接发送给其他人也更好。

于 2012-07-18T19:35:17.397 回答