博客列表 >控制器、请求对象、依赖注入——2018年5月22日作业

控制器、请求对象、依赖注入——2018年5月22日作业

白猫警长的博客
白猫警长的博客原创
2018年05月25日 13:49:19648浏览

控制器

控制器文件通常放在 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);

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议