博主信息
博文 59
粉丝 0
评论 1
访问量 58004
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
控制器、请求对象、依赖注入——2018年5月22日作业
白猫警长的博客
原创
808人浏览过

控制器

控制器文件通常放在 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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学