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