# 控制器入门
在MVC设计模式中,控制器C属于调度模型M和和视图V的主要角色,我们通常在控制器里面进行一些业务逻辑的代码编写,很少涉及数据库的读写,只关心数据从哪里来,怎样来就完全不关心。
# 定义与使用
## 直接定义
我们可以直接把一个类,放在模块/controller/文件夹下,并且保证类名和文件名一致即可。
然后通过url:域名/模块/控制器名称/控制器里面的方法来名称。这样就可以在浏览器里面看到最终的结果了。
例如,我定义一个Ioc类,放在
项目根目录/应用目录/index/controller/Ioc.php
![](https://box.kancloud.cn/3e1d989d9d505e44edaed840b69202ce_1454x978.png)
然后在浏览器输入:
tp51.test.cn/index/Ioc/index
这样就可以看到返回输出的结果。
* * * * *
这样就是定义一个控制器了,为了更方便使用,控制器类建议继承系统的控制器基类think\Controller,虽然无需继承也可以使用。
* * * * *
## 继承控制器基类
![](https://box.kancloud.cn/32d380205c738ce5683d9e5acc4a4100_1023x707.png)
继承后有什么好处呢,基类控制器默认给你实例化了视图V的实例,请求的实例(Request)还有大量常用的东西都给你准备好了,你只需要去调用。
所以后续内容我们如果定义一个控制器我都会继承控制器基类。并且会使用依赖注入,和面向对象的知识去进行项目实践的开发