批改状态:合格
老师批语:
控制器文件通常放在 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 的方式,无需进行任何的手动输出,系统会自动完成渲染内 容的输出。
<?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);点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号