【问题标题】:A web application from one routing script: what are the pros and cons?来自一个路由脚本的 Web 应用程序:优点和缺点是什么?
【发布时间】:2012-02-07 01:52:01
【问题描述】:

作为一名 PHP 程序员(仅针对您的上下文),我通常为应用程序中的每个页面创建一个新文件。当然,一个脚本可能会处理一小部分视图(例如系统的特定子模块)。

但是,对于 node.jsSlim(PHP 框架)之类的,我发现它们只有一个路由脚本。

在该核心路由脚本中,定义了应用程序如何响应对应用程序不同部分的请求。

但是,我习惯于在 .htaccess 中使用 ReWrite 规则做同样的事情,它再次指向整个应用程序中的多个脚本。

在一个脚本中定义 Web 应用程序的核心有哪些优点和缺点?

【问题讨论】:

    标签: php web-applications architecture


    【解决方案1】:

    重写规则不可移植。他们需要 apache 和 mod_rewrite。 然而,使用基于 php 的路由只需要一个网络服务器,您可以在其中确保所有请求都通过该脚本。

    【讨论】:

    • 因此,将应用程序与 Apache 分离是一回事。不管环境“约束”如何,路由方法还是更好,还是更像是一种妥协?
    • @eoinoc: mod_rewrite 的功能有限,严重有限。除了一堆简单的正则表达式替换之外的任何东西,它都会很快变得丑陋。真正的路由解决方案可让您在命令中使用语言(在本例中为 PHP)的全部功能。
    • 与许多事情一样,我希望我早点知道这是一种更好的方法 :)
    【解决方案2】:

    据我所知,只有优点:

    • 在文档根目录中只保留一个文件(js、css 和 media 除外)
    • 您不必总是记得在每个页面上添加include 'all-pages-setup.php' 或您的内容。您只需执行一次(如果此时需要)。
    • 网址或多或少会自动变得更漂亮。

    【讨论】:

    • 我通常在文档根目录中只有一个脚本,类位于 ./app/ 之类的位置。但我确实喜欢你提到的其他优势。
    【解决方案3】:

    优点:

    • 清晰:跟踪执行时,您始终知道从哪里开始
    • 减少所有请求使用的重复代码
    • 以后可以很容易地添加您希望执行所有请求的代码,例如用于分析
    • 将请求 URL 与实现 .php 文件路径解耦,使支持友好 URL 变得更简单

    但对我来说主要的是:

    • 当您填满 .htaccess 文件时,没有调试 bleedin' 500 内部服务器错误

    顺便说一句,该技术被称为Front Controller Design Pattern

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      • 2013-11-13
      • 2010-09-06
      • 1970-01-01
      • 2016-02-27
      • 1970-01-01
      相关资源
      最近更新 更多