【问题标题】:What is a Front Controller and how is it implemented?什么是前端控制器,它是如何实现的?
【发布时间】:2011-10-16 22:33:48
【问题描述】:

首先,我是 PHP 的初学者。并在这里发布了一个问题: Refactoring require_once file in a project .我尝试尽可能多地阅读有关 Front 控制器的信息,但无法了解它是如何工作的,甚至无法了解它的全部内容。

有人能简要解释一下它是如何工作的吗?

【问题讨论】:

  • 这是一个单一的入口点。每个请求都由前端控制器处理。你读过en.wikipedia.org/wiki/Front_controller 吗?
  • 是的,但链接并没有给我太多关于它的信息。它是怎么做的?

标签: php front-controller


【解决方案1】:

前端控制器是指一种设计模式,其中应用程序中的单个组件负责处理对应用程序其他部分的所有请求。它集中了应用程序其余部分所需的通用功能。模板、路由和安全是前端控制器功能的常见示例。使用这种设计模式的好处是,当这些函数的行为需要改变时,只需要修改应用程序的一小部分。

在网络术语中,对域的所有请求都由单个入口点(前端控制器)处理。

非常简单示例前控制器的路由功能。使用 Apache 提供的 PHP 看起来像这样。最重要的一步是将所有请求重定向到前端控制器:

.htaccess

RewriteEngine On
RewriteRule . /front-controller.php [L]

front-controller.php

<?php

switch ($_SERVER['REQUEST_URI']) {
    case '/help':
        include 'help.php';
        break;
    case '/calendar':
        include 'calendar.php';
        break;
    default:
        include 'notfound.php';
        break;
}

【讨论】:

  • 为什么除非我删除反斜杠 RewriteRule . front-controller.php [L] 否则它不起作用?
  • 这也导致了内部重定向循环!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2016-04-03
  • 1970-01-01
  • 2015-11-30
相关资源
最近更新 更多