Controller 控制器
MVC的控制流程主要包括: 请求Request
, 引导Bootstrap
, 路由Router
,派发Dispatcher
,执行Action
,视图渲染Viewer
, 响应Response
.
Controller的实例化
Web环境下,需要继承Tiny\MVC\Controller\Controller
Console环境下,需要继承Tiny\MVC\Controller\ConsoleController
他们的基类是Tiny\MVC\Controller\ControllerBase. Tiny\MVC\Controller\ControllerBase的实现包括三部分,自动注入的实例
,视图处理函数和无视图情况下的输出
,模型及其他类的自动注入
。
/*** 控制器积类** @package Tiny.Application.Controller* @since 2017年3月12日下午2:57:20* @final 2017年3月12日下午2:57:20*/abstract class ControllerBase{// 自动注入的参数边/*** 当前应用程序实例** @var ApplicationBase*/protected $application;/*** 当前请求参数** @var Request*/protected $request;/*** 当前响应实例** @var Response*/protected $response;/*** 模块设置数组** @autowired
Controller在profile.php的配置项
/*** Application的响应实例配置** response.formatJsonConfigId* response格式化输出JSON 默认指定的语言包配置节点名* status => $this->lang['status'];*/$profile['response']['formatJsonConfigId'] = 'status';/*** Application的控制器配置** controller.namespace 相对Application命名空间的命名空间配置* default Controller Web环境下的控制器命名空间, 如App的命名空间为\App, 即\App\Controller* console Console\Console 命令行下的相对控制器命名空间* rpc Controller\Rpc** controllr.src* 控制器的源码加载目录** controller.default* 默认的控制器名称** controller.param* 默认的控制器参数** controller.action_default* 默认的控制器动作名称** controller.action_param* 默认的控制器动作参数**/$profile['controller']['namespace']['default'] = 'Controller';$profile['controller']['namespace']['console'] = 'Controller\Console';$profile['controller']['namepsace']['rpc'] = 'Controller\RPC';