Blogger Information
Blog 59
fans 0
comment 1
visits 48164
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
控制器、请求对象、依赖注入——2018年5月22日作业
白猫警长的博客
Original
649 people have browsed it

控制器

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

运行实例 »

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


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post