DI是什么?DI()->notorm = new PhalApi_DB_NotORM(DI()->config->get('dbs'), $debug);

DI()->notorm = new PhalApi_DB_NotORM(DI()->config->get('dbs'), $debug);

经常看到这个DI,却一直没问道老师,这是什么。。

今天看到一个解释

DI
依赖注入 Dependency Injection

不必自己在代码中维护对象的依赖

容器自动根据配置,将依赖注入指定对象

依赖注入。

术语介绍
——引用《Spring 2.0 技术手册》林信良

非侵入性 No intrusive
框架的目标之一是非侵入性(No intrusive)

组件可以直接拿到另一个应用或框架之中使用

增加组件的可重用性(Reusability)

容器(Container)
管理对象的生成、资源取得、销毁等生命周期

建立对象与对象之间的依赖关系

启动容器后,所有对象直接取用,不用编写任何一行代码来产生对象,或是建立对象之间的依赖关系。

IoC
控制反转 Inversion of Control

依赖关系的转移

依赖抽象而非实践

DI
依赖注入 Dependency Injection

不必自己在代码中维护对象的依赖

容器自动根据配置,将依赖注入指定对象

AOP
Aspect-oriented programming

面向方面编程

无需修改任何一行程序代码,将功能加入至原先的应用程序中,也可以在不修改任何程序的情况下移除。

分层
表现层:提供服务,显示信息。
领域层:逻辑,系统中真正的核心。
数据源层:与数据库、消息系统、事务管理器及其它软件包通信。
——《企业应用架构模式》P.14
原文地址:https://www.cnblogs.com/gzpu/p/14832683.html