该继承哪个控制器?
很多刚接触yii的小伙伴看到编辑器的提示之后,就一脸 ??? ,我该继承哪个控制器,为什么有这么多控制器类型?
其实为了更好地实现 “各司其职”,将几种 Controller 区分开来,其实仔细看看也知道大概意思,只不过可能不太明确其使用场景。
Controller 介绍
base\Controller
在 Yii2 中大多数以 base 开头的,都是一个公共基类,天生就是被别人继承的,所以在我们自己开发的时候一些天生被继承的类,也可以沿用其规范,放在新建的base目录下,如 common\base\ActiveRecord
console\Controller
控制台程序需要继承此 Controller,用于 cli 下命令的执行,比如 使用 crontab 去执行一个定时任务就需要写在 console模块下(adnvance版)
rest\Controller
开发 restful 应用的时候需要继承此 Controller。
web\Controller
是了,最常规的的开发web程序的应用,应该继承此 Controller。
Controller 路由
- 后缀需要带有 Controller,如 PostController
- 其路由为 post
- 多个单词,以 - 连接,如 PostCommentController
- 其路由为 post-comment
修改默认控制器
现在默认的控制器为 SiteController,然后有的时候强迫症一上头就想用 IndexController 作为默认控制器,访问域名的时候默认就去找 IndexController 控制器,可以修改其应用配置
如 frontend/config/main-local.php
<?php
return [
'defaultRoute' => 'index',
'components' => [......]
]