控制器:
控制器文件通常放在 application/module/controller 下面,类名和文件名保持大小写一致,并采 用驼峰命名(首字母大写)。
一个典型的控制器类定义如下:
<?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { return 'index'; } } //为了更方便使用,控制器类建议继承系统的控制器基类 think\Controller ,虽然无需继承也可以使用
控制器类文件的实际位置是
application\index\controller\Index.php
访问URL地址是(假设没有定义路由的情况下)
http://localhost/index.php/index
控制器的命名空间:
控制器类的所在命名空间为 app\module\controller ,其中根命名空间 app 为系统默认,并且只能通过环境变量设置更改,例如我们可以在 .env 配置文件中设置:
APP_NAMESPACE = application
则实际的控制器类应该更改定义如下:
<?php namespace application\index\controller; class Index { public function index() { return 'index'; } } //以上只是命名空间改变了,但实际的文件位置和文件名并没有改变。
渲染输出
默认情况下,控制器的输出全部采用 return 的方式,无需进行任何的手动输出,系统会自动完成渲染内 容的输出。
依赖注入:(1.构造方法,2.普通方法)
<?php /医院 用实例演示依赖注入,主要有两种方法(1.构造方法,2.普通方法) */ class Mice { public function fuc() { return '会游泳'; } public function count() { return '更爱大米'; } } // 1.构造方法实现依赖注入 class By { private $mice = null; public function __construct(Mice $mice) //在构造方法中传入Mice类的参数 { $this->mice = $mice; } public function getwok() { return '老鼠'.$this->mice->fuc(); //调用外部方法 } } $mice1 = new Mice; $by = new By($mice1); echo $by->getwok(); echo "<hr>"; // 2.普通方法实现依赖注入 class By2 { public function bue(Mice $mice) { return '老鼠'.$mice->count(); } } $mice1 = new Mice; $by2 = new By2; echo $by2->bue($mice1);
运行实例 »
点击 "运行实例" 按钮查看在线实例