问题标签 [front-controller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14950 浏览

php - 什么是前端控制器,它是如何实现的?

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

有人可以简要解释一下它是如何工作的以及是怎么回事吗?

0 投票
1 回答
3977 浏览

php - 如果找不到文件,则 mod_rewrite 重定向

我有一个网站,它使用前端控制器将流量重定向到某些文件,因此我可以使用 SEO 友好的 URL,但是网站上有一些静态页面,我不希望流量远离:

我目前有以下.htaccess:

这似乎工作正常:

  • 所有流量都被转移到www.example.com
  • 并且任何没有找到的网页都被定向controller.php到处理;
  • 任何实际存在的东西,例如www.example.com/about_us.php仍然有效的东西;

问题是即使页面仍然发送并正确显示,它仍然报告 404 错误 - 它看起来对最终用户没有任何不同,但是当 Google 机器人看到 404 并假设有没有别的了。

有什么方法可以简单地重定向除某些页面列表之外的所有流量,还是有更优雅的解决方案?

任何帮助、想法、评论等都将受到欢迎

0 投票
3 回答
41168 浏览

.htaccess - 如何将所有请求重定向到文件,除了使用 Apache 的图像?

我有一个包含以下内容的 .htaccess 文件:

有了这个,我希望将所有请求重定向到文件entryPoint.php,以便它可以检查它们:

  • 如果没有扩展,则必须是模块
  • 如果有.php,那就是黑客攻击
  • 如果它是一个 .png,那么它就是一个“安全”的调用。

    在图像的情况下,我曾经输出标题file_get_contents()及其内容。我发现它比直接阅读要慢一些。

我的问题是:

entryPoint.php如果有图像引用,如何防止此 .htaccess 调用?

非常感谢对我已经拥有的代码的额外反馈!

0 投票
1 回答
148 浏览

jsf - JSF 应用程序中的 Qi4j

在 Qi4j 中,您必须组装复合材料。有人能告诉我在 JSF 2.0 应用程序中在哪里处理这个问题吗?我应该扩展 FrontController-Servlet 吗?或者在部署和启动应用程序时就足够了?

非常感谢!

0 投票
1 回答
52 浏览

php - 如何在我的 PHP 文件中轻松包含指向我网站其他页面的链接?

我想知道是否有办法使以下过程更加自动化(因此如果链接发生更改,链接会自动更新)。

我有一个 PHP 站点,带有一个前端控制器。

现在我想知道如何在不同的 PHP 文件中显示某些链接(到页面)?(我不想真正手动这样做......因为这意味着如果页面名称被更改,我必须手动浏览所有文件)。

基本上,我正在寻找一种可以轻松自动地在我的网站上包含指向页面链接的方法。

我有一个想法将它们存储在一个配置数组中,然后在 PHP 文件中使用某种包装器/帮助器函数从配置数组中检索它们并显示它们(但不确定它是否是最好的前进方式或者是否有其他方法)?

也许类似于 WordPress 是如何做到的(虽然我不熟悉它,但我听说它使用类似的技术......)因为我拥有的是一个前端控制器和一个映射数组(包含页面的 url) - 如果有帮助的话。

欣赏所有的方法和反应。

0 投票
2 回答
4419 浏览

php - Zend 清除请求参数

我只是想问一下为什么在 Zend_Controller_Action 操作方法中有以下内容:

产生这个:

'author' 变量不应该也被清除吗?

提前致谢!

0 投票
2 回答
1373 浏览

php - 带有php前端控制器的动态路由

我正在尝试从 URL 获取控件名称并将其与 index.php 中的正确控制器动态匹配。

我的应用程序根目录:/localhost/app/index.php

所以基本上当我输入 /localhost/app/index.php/home 时,试图包含 home_controller.php。这是代码;

如果应用程序根深度为 3,它可以正常工作。当我更改应用程序目录(如 localhost/first/second/app/index.php/home)时它会损坏

因为它爆炸了 3,$parts[0] 不再是“家”问题是我怎样才能以更有效的方式检测控制器部件?

0 投票
4 回答
1225 浏览

php - PHP 布局管理器

我不确定我是否可以在这里问一个更实际的问题,因为这个问题不像提供好的建议那样得到支持。

我有一个带有简单布局管理器(没有更好的术语)的前端控制器,它有效地加载默认(或自定义,如果如此指定)html“布局”或骨架,并根据用户页面请求,将插入另一个文件(称为视图文件)到骨架内容区域。

骨架可能看起来像:

虽然很简单,但这使得以后的更新变得容易,因为如果客户现在希望我添加一个 jquery 滚动条,我可以将它添加到单个布局中,因为不必编辑多个文档来实现相同的目标。

然而,我的朋友说他认为这不是一个好的解决方案,并认为我不应该拆分我的“视图”文件和布局,而是坚持使用前端控制器,我的 html 页面应该使用 php include(包括页眉和页脚)和将我的 html 页面保存为 1 个文件,因为:

  1. 布局管理器会使我的应用程序不那么灵活,因为我将自己绑定到单个布局(除非我创建一个新布局并在我的页面控制器文件中指定它应该使用不同的布局)。
  2. 其他开发人员将很难理解逻辑,而我正在创造比需要更多的工作
  3. 简单的 HTML 开发人员将无法进行适当的测试,因为他们只能真正处理与整个 HTML 文档相对应的片段并看到更大的图景。
  4. 这更令人困惑,因为要对页面进行更改,我需要在视图文件或骨架文件中进行修改,并且您需要知道何时编辑骨架文件。

我将很快开始开发一个具有多个开发阶段的项目,对此我做出决定至关重要,因为我希望应用程序尽可能灵活并创建尽可能少的工作,但也要构建它这样我就可以轻松地对网站进行修改、改进或更改。我真的很重视一些建议,因为这个论点现在是基于 2 个人的意见。任何需要考虑的要点,以及可能有关更大的主流框架和 CMS 工作的信息也将帮助我做出更好的决定。

0 投票
1 回答
469 浏览

php - 使用 set_exception_handler 处理应用程序中的错误

我目前正在开发一个实现前端控制器模式的 MVC 应用程序。

这个过程是这样的:

  1. 收到请求
  2. 请求变成了一个 RequestObject
  3. RequestObject 被传递给调度程序
  4. Dispatcher 然后路由,然后调用所需的控制器。
  5. 控制器在 ResponseObject 中返回结果。
  6. Dispatcher 然后将 ResponseObject 返回到应用程序的“前端”。
  7. 然后回显输出。

有一种特殊情况(对于 ajax 和 flash 前端):

  1. 调度程序将看到请求被发送到“端点”控制器。
  2. 端点控制器然后将请求分派给实际请求的控制器,如上所述。
  3. 然后将 requestObject 返回到端点控制器。
  4. 端点控制器然后执行其 JSON 或 AMF 编码,这将被回显。
  5. 然后脚本以exit();结束。

我创建了一个ExceptionHandler类并使用set_exception_handler. 同时我创建了一个ErrorHandlerand using set_error_handler,所有错误都被转换并作为异常抛出。

所有这些都运作良好。ExceptionHandler然而,当我遇到这些异常之一时,我正在努力解决这个问题。在 中ExceptionHandler,ResponseObject 被修改以反映我们需要抛出 500 错误的事实。

我想以某种方式从 ResponseObject 返回,ExceptionHandler这样返回的 ResponseObject 可以被调度程序“捕获”,然后由“端点”控制器或“前端”控制器呈现或转换为 JSON 或 AMF 响应。

这可能吗?如果是这样,最好的方法是什么?

0 投票
1 回答
499 浏览

console - 前端开发控制台

我负责一个用 symfony 开发的网站。该网站正在生产中。

我想知道如何重新安装前端控制台,因为我对我的任务完全视而不见。