1

我正在开发基于 Zend 框架的应用程序,并且正在引导程序中初始化 MVC。现在我在应用程序中添加 AJAX 层,所以在控制器操作中,我禁用了视图渲染,并且我开始质疑我首先在引导程序中启动 MVC 的方法。我还需要在应用程序中添加一些 cron/cli 支持,因此我还需要停止该部分的 MVC 渲染。所以简而言之,有些情况(AJAX、Cli、Cron 等)我们不需要 MVC,但它最初作为引导程序的一部分执行,后来我们强行停止它。

所以我确信必须有另一种方法可以更优雅地处理这种情况,而不是从一开始就启动 MVC,我们可以在将输出发送到客户端之前立即启动它。

4

2 回答 2

1

为什么你不需要 AJAX 或 CLI 的 MVC?这种上下文切换是 MVC 存在的原因:保留模型和/或控制器,但使用另一个视图。

但也许你可以创建另一个引导文件(而不是 index.php),比如说 cli.php 和 ajax.php 以避免一些你只是为“常规”请求初始化的东西(导航、路线、布局+视图管理, acl,..)。目前,我不使用另一个引导文件,因为 AJAX 非常适合我当前的结构(布局除外,但有一个 contextSwitch 用于此)。

于 2011-11-21T22:06:09.343 回答
0

让我们快速浏览一下 index.php 中的应用程序启动:

$application->bootstrap() // here you load and configure your resources
            ->run();      // here you launch the request handling, dispatching, mvc, etc.. 

当您想在 CLI 上下文中使用您的应用程序时,您将只想引导,而不是运行 MVC 应用程序。只需省略->run().

当然,您可以只初始化脚本中所需的资源:

$app->bootstrap('cachemanager')->bootstrap('db');

对于 Ajax,如果您需要控制器和动作,您需要所谓的“MVC”。最近有一个SO question,您可以在其中找到有关“Ajax 控制器”概念的更多详细信息。

于 2011-09-21T13:28:49.383 回答