2011-07-31 22 views
23

首先,我是PHP的初學者。並且在這裏發佈了一個問題: Refactoring require_once file in a project 。我試着儘可能多地閱讀Front控制器,但無法知道它是如何工作的,甚至不知道它是怎麼回事。什麼是Front Controller,它是如何在PHP中實現的?

有人可以簡單地解釋它的工作原理和最新情況嗎?

謝謝。

+0

這是一個入口點。每個請求都由前端控制器處理。你讀過http://en.wikipedia.org/wiki/Front_controller嗎? –

+1

是的,但鏈接並沒有給我太多的信息。它是如何做的,這樣的東西? –

回答

42

Front Controller是指一種設計模式,其中應用程序中的單個組件負責處理對應用程序其他部分的所有請求。它集中了應用程序其餘部分所需的常用功能。模板,路由和安全性是前端控制器功能的常見例子。使用這種設計模式的好處是,當這些功能的行爲需要改變時,只需要修改一小部分應用程序。

在網絡術語中,域的所有請求都由單個入口點(前端控制器)處理。

an 極其簡單的示例前端控制器的路由功能。使用Apache提供的PHP看起來像這樣。最重要的一步就是重定向到前端控制器的所有請求:

的.htaccess

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

前Controller.php這樣

<?php 

if ($_SERVER['REQUEST_URI'] == '/help') { 
    include 'help.php'; 
} elseif ($_SERVER['REQUEST_URI'] == '/calendar') { 
    include 'calendar.php'; 
} else { 
    include 'notfound.php'; 
} 
+0

爲什麼它不工作,除非我刪除反斜槓'重寫規則。 front-controller.php [L]'? –

+0

也造成了內部重新方向的循環! –

相關問題