# 进阶篇二 实战开发之控制器基类 [TOC] ## 控制器基类 > 什么是基类 什么是继承请参见前面课程 本节课不再详细介绍 ### 控制器的基类的使用方法 >[info] 我们这里说的控制器的基类,实际上是我们自定义的虚拟类继承Controller类,可以说是控制器的子类,如果我们后面新建的控制器继承基类后,即可使用控制器的所有方法,也可以使用基类中的所有方法.同时也可以使用注入参数 对象 等方法,使开发更加便捷. * 我们基础模块控制器base基类的建立 ![](https://box.kancloud.cn/5b245d82ff73e6898b0975901747f234_247x350.png) >[danger] 其实就是application目录下面新建一个文件夹 base 注意,命名要规范,文件名全部小写 并在base目录下建立controller文件夹 ![](https://box.kancloud.cn/47281334f3060462204318955c1b3a23_246x296.png) 在控制器controller目录下 建立一个名字为Base.php的类文件,那么这个文件就是以后所有的文件最基础的控制器基类文件 ![](https://box.kancloud.cn/2b189dccbb21b7623c58b0ea712d3504_605x355.png) 名字Base 命名空间` namespace app\base\controller;` ![](https://box.kancloud.cn/d7982553495ede4e639b41839cc95feb_397x386.png) 新建后的代码如下: ~~~ <?php /** * Created by PhpStorm. * User: Mikkle * Q Q:776329498 * Date: 2017/8/14/014 * Time: 21:36 */ namespace app\base\controller; class Base { } ~~~ 接下来我们使基类继承Controller ![](https://box.kancloud.cn/3d9367531605f91bb1705eadd8577963_417x371.png) 编辑器有提示 按e 选择敲回车即可 再按Con 选择敲回车 ![](https://box.kancloud.cn/f92f3fc473c7f96690f6de59f105509d_538x476.png) 下面 我们的基类就完整建成了 ~~~ <?php /** * Created by PhpStorm. * User: Mikkle * Q Q:776329498 * Date: 2017/8/14/014 * Time: 21:36 */ namespace app\base\controller; use think\Controller; class Base extends Controller { } ~~~ >[danger] 注意看 编辑器自动添加了 use think\Controller; 这行代码是必不可缺少的 * 模块中控制器base基类的建立 同样方法在api模块控制器文件夹中建立Base基类 ![](https://box.kancloud.cn/90a0c97dd24a22873d783aaba927b7cd_506x257.png) ~~~ <?php /** * Created by PhpStorm. * User: Mikkle * Q Q:776329498 * Date: 2017/8/14/014 * Time: 21:49 */ namespace app\api\controller; class Base extends \app\base\controller\Base { } ~~~ 建立好后的样子 当然 你也可以改成下面这个这样 其实效果都是一样的 ~~~ <?php /** * Created by PhpStorm. * User: Mikkle * Q Q:776329498 * Date: 2017/8/14/014 * Time: 21:49 */ namespace app\api\controller; use app\base\controller\Base as ControllerBase; class Base extends ControllerBase { } ~~~ * 控制器文件继承控制器基类的方法 接下来 我们在api模块新建Search控制器 并继承同命名空间下的Base控制器基类 ![](https://box.kancloud.cn/d6c6ba12fc0b7f563c0735f2354bf45d_505x466.png) ~~~ <?php /** * Created by PhpStorm. * User: Mikkle * Q Q:776329498 * Date: 2017/8/14/014 * Time: 22:01 */ namespace app\api\controller; class Search extends Base { } ~~~ >[danger] 注意看:同命名空间中引用其他类时候,不再有use app\api\controller\Base这样的代码 哈哈 这回我们控制器基类使用架构搭完了,是不是会感觉很绕 感谢大家关注 交流请加QQ群 321449759 ![](https://box.kancloud.cn/3499008a08e64306c68873288092a057_286x340.png)