我正在使用前端的KnockOutJS和后端的PHP开发应用程序。
后端有两个入口点:index.php,它包含所有的html代码,包括来自knockoutJS的所有JS文件和我的自定义JS文件,css等。另一个是main.php,这是我所有的地方AJAX请求来自我的ViewModel,它是纯PHP。
我没有看到如何在不将html和php代码混合到同一个文件(index.php)中的情况下将其作为单个条目应用程序。这样做会适得其反,因为在同一文件中混合使用多种语言通常会令人困惑。
我的问题是,在这种情况下如何应用一种FrontController模式? FrontController模式看起来非常像命令模式。它的优点是什么? (除了有一个入口点)我如何拆分main.php文件,以便连续30行if else语句,每种请求都有一个?
答案 0 :(得分:0)
通常,前端控制器用作应用程序的中心入口点。
结合路由器,调度员和MVC,前端控制器带来了真正的优势和明确的职责分离。
使用前置控制器可以非常轻松地创建Clean URL或“漂亮的URL”。通常,您需要一个相应的.htaccess
文件,该文件会将所有请求转发给前端控制器(index.php
)。
e.g。
# Redirect to front controller
RewriteEngine On
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
在前端控制器中,应用程序正在进行自举,并通过匹配URL路径将请求转发到相应的控制器操作。控制器接收请求,将计算的数据传输到View(模板引擎)进行渲染,并将视图的结果作为响应返回。