2008-12-31 34 views
6

我是网络开发(和大学)的学生,所以我很抱歉,如果这听起来天真和冒犯,我当然不是这个意思。我的经验是PHP和一个小型项目(一个荣耀的转换日程表),我希望学习一个更高级别的框架以减轻代码负担。到目前为止,我看了CakePHP Symfony Django和Rails。Django,Rails路由...点?

使用PHP,URL非常简单地映射到文件,并且它“刚刚工作”。这对服务器来说很快,而且直观。但是对于所有这些框架,通过使URL映射到不同的函数并将这些参数路由到不同文件中的不同变量,可以使URL“变得漂亮”。

我正在阅读的“The Rails Way”一书承认,这是狗慢,并且是大型项目中大多数表现痛苦的原因。我的问题是“为什么要摆在首位?”? url-maps-to-a-file范例(或mod_rewrite指向单个文件)中是否存在特定点,它需要正则表达式和复杂的路由方案?我是否错过了不使用它们的东西?

在此先感谢!

回答

6
  • 网址应该很容易记住并说出来。用户在看到该URL时应该知道该期待什么。直接将URL映射到文件并不总是允许的。
  • 您可能想要为显示的相同或至少类似的信息使用不同的URL。如果您的服务器强制您使用1 url < - > 1文件映射,则需要创建其他文件,其所有功能都将重定向到其他文件。或者你使用像mod_rewrite这样的东西,这是不容易的,然后Rails的网址映射。
  • 在我的应用程序一个我使用的URL看起来像http://www.example.com/用户名/一些额外的东西/。这也可以用mod_rewrite来完成,但至少对我来说,在django项目中配置url更容易,然后在我运行应用程序的每个apache实例中配置。

只是我的2美分...

0

此外,路由器就像mod_rewrite,但更灵活。它们不是正则表达式绑定的,因此对于不同类型的路由有更多的选项。

0

取决于您的应用程序有多大。我们有一个相当大的应用程序(50多个型号),它不会给我们带来任何问题。当它发生时,我们会担心它。

2

Django网址也是非常可定制的。使用像Code Igniter这样的PHP框架(我不确定Rails)强制进入/ class/method/extra/URL结构。虽然这可能适用于小型项目和应用程序,但只要您尝试使其更大/更动态,就会遇到问题,并且必须重写某些框架代码才能处理它。

3

将应用程序代码存储在Web服务器的文档树中是一个安全问题。

  • 配置不当可能会不小心泄露的源代码给游客通过安全漏洞注入
  • 文件是立即执行的HTTP请求
  • 备份文件(例如创建通过文本编辑器)可以揭示代码或配置错误的情况下是可执行的
  • ,管理员未能删除旧文件可以揭示意想不到的功能
  • 请求库文件必须被明确拒绝
  • 网址透露执行细节(这语言/框架被使用)

请注意,只要其他事情没有出错(以及其中一些错误甚至会出现严重错误),上述所有内容都不是问题。但是总会出现问题,多余的防线也不错。

6

大部分已经被覆盖,但没有人提到过SEO。谷歌对网址本身有很大的影响,如果这个网址是widgets.com/browse.php?17,这不是很友好。如果您的网址为widgets.com/products/buttons/,这会对您的按钮页面排名产生积极影响