D:\wamp64\www\thinkphp5.1\tp5.1\application\index\controller\Demo1.php文件

<?php
namespace app\index\controller; /**
*容器与依赖注入的原理
* 1.任何的URL访问,最终都是定位到控制器,由控制器中某个具体的方法去执行
* 2.一个控制器对应着一个类,如果这些类需要进行统一管理,怎么办?
* 容器进行类管理,还可以将类的实例(对象)作为参数,传递给类方法,自动触发依赖注入
* 依赖注入:将对象类型的数据,以参数的方式传到方法的参数列表
* URL访问:通过GET方式将数据传到控制器制定的方法中,但是只能传字符串数值
* 如连接方式www.tp51.com/index/Demo1/getName/name/likexin
*
* 如果要传一个对象?怎么办
* 依赖注入:解决了向类中的方法传对象的问题
* 连接方式www.tp51.com/index/Demo1/getMethod
*/
class Demo1{
//可以通过字符串,数值用GET方式来传值到类方法中
public function getName($name='Peter'){
return "Hello".$name;
}
/**
* \app\common\Temp $temp:将会触发依赖注入
*
*/
public function getMethod(\app\common\Temp $temp){
//代码:\app\common\Temp $temp
// 等价于:$temp=new \app\common\Temp;
$temp->setName('PHP中文网');
return $temp->getName();
}
}

D:\wamp64\www\thinkphp5.1\tp5.1\application\common\Temp.php文件

<?php
namespace app\common; class Temp{
private $name;
public function __construct($name='Peter'){
$this->name=$name;
}
public function setName($name){
$this->name=$name;
}
public function getName(){
return '方法是:'.__METHOD__.'属性是:'.$this->name;
}
}

ThinkPHP依赖注入的更多相关文章

  1. 话说 依赖注入(DI) or 控制反转(IoC)

    科普:首先依赖注入和控制反转说的是同一个东西,是一种设计模式,这种设计模式用来减少程序间的耦合,鄙人学习了一下,看TP官网还没有相关的文章,就写下这篇拙作介绍一下这种设计模式,希望能为TP社区贡献一些 ...

  2. ThinkPHP6源码:从Http类的实例化看依赖注入是如何实现的

    ThinkPHP 6 从原先的 App 类中分离出 Http 类,负责应用的初始化和调度等功能,而 App 类则专注于容器的管理,符合单一职责原则. 以下源码分析,我们可以从 App,Http 类的实 ...

  3. webapi - 使用依赖注入

    本篇将要和大家分享的是webapi中如何使用依赖注入,依赖注入这个东西在接口中常用,实际工作中也用的比较频繁,因此这里分享两种在api中依赖注入的方式Ninject和Unity:由于快过年这段时间打算 ...

  4. ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入

    原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...

  5. 在WPF中使用依赖注入的方式创建视图

    在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...

  6. MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息

    MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...

  7. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整-控制反转和依赖注入的使用

    再次调整项目架构是因为和群友dezhou的一次聊天,我原来的想法是项目尽量做简单点别搞太复杂了,仅使用了DbContext的注入,其他的也没有写接口耦合度很高.和dezhou聊过之后我仔细考虑了一下, ...

  8. ASP.NET Core中如影随形的”依赖注入”[下]: 历数依赖注入的N种玩法

    在对ASP.NET Core管道中关于依赖注入的两个核心对象(ServiceCollection和ServiceProvider)有了足够的认识之后,我们将关注的目光转移到编程层面.在ASP.NET ...

  9. ASP.NET Core中如影随形的”依赖注入”[上]: 从两个不同的ServiceProvider说起

    我们一致在说 ASP.NET Core广泛地使用到了依赖注入,通过前面两个系列的介绍,相信读者朋友已经体会到了这一点.由于前面两章已经涵盖了依赖注入在管道构建过程中以及管道在处理请求过程的应用,但是内 ...

随机推荐

  1. LC 961. N-Repeated Element in Size 2N Array【签到题】

    In a array A of size 2N, there are N+1 unique elements, and exactly one of these elements is repeate ...

  2. AppInfoProvider提供应用信息的工具类

    package com.loaderman.demo; import android.content.Context; import android.content.pm.ApplicationInf ...

  3. Rxjava2实战--第三章 创建操作符

    Rxjava2实战--第三章 创建操作符 Rxjava的创建操作符 操作符 用途 just() 将一个或多个对象转换成发射这个或者这些对象的一个Observable from() 将一个Iterabl ...

  4. redis 之django-redis

    redis之django-redis   自定义连接池 这种方式跟普通py文件操作redis一样,代码如下: views.py import redis from django.shortcuts i ...

  5. mysql5.6 多实例标准化安装

    1.检查防火墙 是否关闭service iptables stopchkconfig iptables offservice iptables status 2. SELINUXvim /etc/se ...

  6. 【图论好题】ABC #142 Task F Pure

    题目大意 给定一个 $N$ 个点 $M$ 条边的有向图 $G$,无重边.自环.找出图 $G$ 的一个导出子图(induced subgraph) $G'$,且 $G'$ 中的每个点的入度和出度都是 1 ...

  7. HTML页面左上角图标

    显示网页左上角标志图标 <link rel="shortcut icon"type="image/x-icon"href="images/fav ...

  8. c++—简单的密码本实现

    主要实现功能有增删改查数据,本地读取保存. 数据存储设计 data.h data.cpp #pragma once #define 添加账户 1 #define 删除账户 2 #define 修改账户 ...

  9. 微信小程序,预览在开发工具上显示正常,手机预览二维码报request->fail错误,打开手机的调试功能又正常。

    这里错误很明显是属于网址错误,开发工具和手机调试都能走request->success: 唯独常规模式下无法显示. 最开始调试过很多方法,没找出原因.最后到小程序开发设置才发现,自己未配置服务器 ...

  10. python computer info look

    计算机信息查看-. import platform import platform def TestPlatform(): print("---------SYSTEM INFO------ ...