依赖注入是通过类的构造函数、方法、或者直接写入的方式,将所依赖的组件传递给类的方式。一般通过构造函数注入的是强依赖关系的组件,setter方式用来注入可选的依赖组件。

现在,大多数流行的PHP框架都采用了依赖注入的模式实现业务组件间的高内聚低耦合。

实例讲解:

1,构造函数注入

class User

{

function __construct($storage)

{

$this->storage = $storage;

}

// ...

}

2 setter方法注入

class User

{

function setSessionStorage($storage)

{

$this->storage = $storage;

}

3属性直接注入

class User

{

public $sessionStorage;

}

$user->sessionStorage = $storage;

依赖注入主要用于面向对像开发,现在让我们假设我们有一个SessionStorage类,该类封装了PHP Session机制:

class SessionStorage

{

function __construct($cookieName =

'PHP_SESS_ID')

{

session_name($cookieName);

session_start();

}

}

还有一个User类提供了更高级的封装:

class User

{

function __construct($storage)

{

$this->storage = $storage;

}

// ...

}

使用User类也很简单:

$storage = new

SessionStorage('SESSION_ID');

$user = new User($storage);

实例二:************************************************************************************

class example {

private $_db;

function getList(){

$this->_db->query("......");//这里具体sql语句就省略不写了

}

//从外部注入db连接

function setDb($connection){

$this->_db = $connection;

}

}

//调用

$example = new example();

$example->setDb(Factory::getDb());//注入db连接

$example->getList();

今天就给大家讲这么多吧,php作为开发类的一个语言,现在受到越来越多人的关注,选择合肥达内PHP培训班,不再孤军奋战,轻轻松松做IT高薪白领。合肥达内带领有明确目标的学子迈向成功之路!

【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!

php对象依赖注入作用,php面向对象依赖注入理解及代码举例分析解释相关推荐

  1. php钩子的作用,php中的钩子理解及应用实例分析

    本文实例讲述了php中的钩子理解及应用.分享给大家供大家参考,具体如下: 钩子的解释 钩子定义 钩子是编程里一个常见概念,非常的重要.它使得系统变得非常容易拓展,(而不用理解其内部的实现机理,这样可以 ...

  2. 面向过程和面向对象的本质理解

    http://kiritor.blog.51cto.com/7400479/1226762/ 面向过程和面向对象的本质理解 面向过程就是分析出解决问题所需的步骤,面向对象则是把构成问题的事物分解成对象 ...

  3. php 依赖注入框架,通过实现依赖注入和路由,构建一个自己的现代化PHP框架

    如何提高自己编写代码的能力呢?我们首先想到的是阅读学习优秀的开源项目,然后写一个自己的web框架或类库组件.作为web开发者,我们通常都是基于面向对象OOP来开发的,所以面向对象的设计能力或者说设计模 ...

  4. 我的控制反转,依赖注入和面向切面编程的理解

    感谢http://blog.xiaohansong.com/2015/10/21/IoC-and-DI/ 的供图 1.什么是控制? 如下图所示,我们看到了 软件系统中 对象的 高耦合现象.全体齿轮的转 ...

  5. 什么是依赖注入 php,什么是依赖注入?

    译文首发于 什么是依赖注入,转载请注明出处. 本文是依赖注入(Depeendency Injection)系列教程的第一篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括: ...

  6. python依赖注入_什么是依赖注入?

    这篇文章是关于一般依赖关系注入和在PHP中实现依赖注入容器系列的第一部分. 今天我不会谈论容器然而我想以一些具体的示例介绍依赖注入的概念希望说明尝试去解决问题和它给开发者带来的好处.如果你已经知道依赖 ...

  7. 依赖注入框架Dagger2详解(一),依赖注入和控制反转的深入理解

    IoC不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合.更优良的程序,而Dagger2框架是依赖注入思想践行者的优秀代表. 依赖注入框架Dagger2详解(一), ...

  8. 依赖注入(di)模式_Java依赖注入– DI设计模式示例教程

    依赖注入(di)模式 Java Dependency Injection design pattern allows us to remove the hard-coded dependencies ...

  9. mockito模拟依赖注入_Mockito @InjectMocks –模拟依赖注入

    mockito模拟依赖注入 Mockito @InjectMocks annotations allow us to inject mocked dependencies in the annotat ...

最新文章

  1. JavaScript八张思维导图
  2. 汇编中的word ptr
  3. 华为鸿蒙产业链股票,华为P40或用鸿蒙 华为产业链概念股一览
  4. 【干货】网工面试最常见的几大问题,附答案
  5. openresty开发系列37--nginx-lua-redis实现访问频率控制
  6. 一加7pro运动计步功能_测血压、心率、血氧、运动计步,来电微信消息等提醒,多种模式可选,这款智能手环功能实在是太全了吧!...
  7. 信息收集——指纹识别
  8. JAVA入门级教学之(浮点型数据类型)
  9. matlab语音去除白噪声_全国首款“AI语音电梯”亮相海淀医院、北医三院
  10. mysqld 多线程 用pstree -p 显示
  11. [leetcode ]221. Maximal Square c语言
  12. android 后台代码设置动画
  13. css中关于transform、transition、animate的区别
  14. word总页数不包含封面_Word2016页码显示总页数不包含封面目录指导文档
  15. 计算机提示策略阻止安装,win7安装软件提示此程序被组策略阻止怎么办
  16. 万豪国际集团推出“双十一”多样化旅行套餐产品
  17. paypal付款,PayPal Subscribe和PayPal Check Out的区别
  18. spring boot整合RabbitMQ —— 十分钟急速上手
  19. Linux集群之自我搭建(虚拟机固定ip与联网)
  20. 这应该是第一篇写拼多多商业模式的文章吧

热门文章

  1. ai二维码插件_超实用的AI脚本插件合集2.0免费分享,让你的设计快人一步
  2. android 代码植入,Android Studio之Debug运行期代码植入的方法
  3. 、简述global关键字的作用_二十三、Python变量作用域(局部变量和全局变量)
  4. 拉普拉斯算子_图机器学习图拉普拉斯算子的离散正则性,141页ppt,Discrete regularity graph Laplacians...
  5. mysql jndi 实例_自己收藏-JNDI应用实例
  6. C++递归删除非空目录所有文件
  7. linux中node跨服务执行文件,linux部署node.js服务并启动服务
  8. sql server 多用户 并发_Tinyid:滴滴开源千万级并发的分布式ID生成器
  9. 软件测试之SOL面试题(一)
  10. php随机分配的方法,PHP生成指定随机字符串的简单实现方法