前端控制器模式是否与单页应用相关



我正在开发一个在前端使用KnockOutJS和后端使用PHP的应用程序。

后端有两个入口点:index.php它包含所有的html代码,包括来自KNOCKOUTJ的所有JS文件和我的自定义JS文件,css等。 另一个是main.php,这是我所有的AJAX请求从我的ViewModel转到的地方,它是纯PHP。

我不明白如何在不在同一文件中混合 html 和 php 代码的情况下使其成为单个条目应用程序,(index.php(。 这样做会适得其反,因为在同一文件中混合多种语言通常会令人困惑。

我的问题是,在这种情况下如何应用一种前端控制器模式? FrontController 模式看起来非常像命令模式。 它的优点是什么?(除了具有单个入口点( 如何拆分我的主文件.php这样我就不会连续有 30 个 if else 语句,每种请求一个?

通常,前端控制器用作应用程序的中央入口点。

与路由器、调度程序和 MVC 相结合,前端控制器带来了真正的优势和明确的职责分离。

使用前端控制器可以非常轻松地创建干净的URL或"漂亮的URL"。通常,您需要一个相应的.htaccess文件,将所有请求转发到前端控制器(index.php(。

例如

# Redirect to front controller
RewriteEngine On
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L] 

在前端控制器中,应用程序将引导,并通过匹配 URL 路径将请求转发到相应的控制器操作。控制器接受请求,将计算数据传输到 View(模板引擎(进行渲染,并将视图的结果作为响应返回。

相关内容

  • 没有找到相关文章