## 控制器 控制器是应用程序中处理用户交互的部分,通常控制器负责读取请求数据,与模型交换数据,渲染视图并发送数据。 >[info] 控制器并不需要强制继承某个基类 控制器是通过路由规则中第一个 callable 类型参数定义的: ~~~php // 路由规则 'rules' => [ // 普通路由 '/' => [[\App\Http\Controllers\IndexController::class, 'index'], 'middleware' => [\App\Http\Middleware\ActionMiddleware::class]], ], ~~~ ## 一个简单的控制器 框架 http 模块的首页默认控制器代码: ~~~ <?php namespace App\Http\Controllers; use App\Http\Helpers\SendHelper; use Mix\Http\Message\ServerRequest; use Mix\Http\Message\Response; /** * Class IndexController * @package App\Http\Controllers * @author liu,jian <coder.keda@gmail.com> */ class IndexController { /** * Index * @param ServerRequest $request * @param Response $response * @return Response */ public function index(ServerRequest $request, Response $response) { $content = 'Hello, World!'; return SendHelper::html($response, $content); } } ~~~ 其中控制器 callable `[\App\Http\Controllers\IndexController::class, 'index']` 的两个参数 `$request`、`$response` 是通过如下方式传递过来的: [>> StartCommand.php#L123 <<](https://github.com/mix-php/mix-skeleton/blob/master/app/Http/Commands/StartCommand.php#L123)