来源于:http://trac.seagullproject.org/wiki/Howto/PragmaticPatterns/FrontController

前端控制器

概述

前端控制器用来

  • 初始化Seagull环境
  • 初始化Request(请求)对象
  • 创建过滤链
  • 通过过滤链把请求传递给最终目标

初始化Seagull环境

Seagull使用任务驱动器来使应用程序的设置尽可能是可配置的。任务对象可以添加到批处理作业并按顺序执行,有选择的接收数据作为参数。

这是一个批处理作业的实例:

  $batch = new SGL_TaskRunner();
  $batch->addData($myData);
  $batch->addTask(new SGL_Task_GoToMarket());
  $batch->addTask(new SGL_Task_StayHome());
  $batch->addTask(new SGL_Task_EatRoastBeef())
  $batch->main();

你可能想到了,任务是可交替重用的对象,所以应该慎重使用。1)

设置Seagull环境涉及到设置应用程序路径,设置常量,载入配置,如果检测到旧的PHP版本则要确保向后兼容等。

然而前端控制器的主要任务是根据当前的请求创建一个过滤链。如果你想另行初始化应用程序或使用一个不同的过滤链或使用一种完全不同的方法,那么你可以通过继承SGL_FrontController自己写一个前端控制器。

代码实例

前端控制器类的不同实例:

  • /trunk/docs/developer/examples/controllers
  • /trunk/etc/sglBridge.php

各种任务驱动器:

  • /trunk/www/setup.php

更多内容请查看

1) 这句话应该推敲一下 Tasks are interchangable, reusable objects that perform discreet .. you guessed it .. tasks
 
howto/pragmaticpatterns/frontcontroller.txt · 最后更改: 2010/05/30 00:21 (外部编辑)
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2