首页 后端开发 php教程 Yii源码解读-服务定位器(Service Locator)

Yii源码解读-服务定位器(Service Locator)

Jul 29, 2016 am 08:57 AM
component private

SL的目的也是解耦,并且非常适合基于服务和组件的应用。

Service Locator充当了一个运行时的链接器的角色,可以在运行时动态地修改一个类所要选用的服务, 而不必对类作任何的修改。

一个类可以在运行时,有针对性地增减、替换所要用到的服务,从而得到一定程度的优化。

实现服务提供方、服务使用方完全的解耦,便于独立测试和代码跨框架复用。

基本功能

Yii中的SL由yii\di\ServiceLocator实现

<code>class ServiceLocator extends Component{
    // 用于缓存服务、组件等的实例
    private $_components = [];
    
    // 保存服务和组件的定义,通常为配置数组,可以用来创建具体的实例
    private $_definitions = [];
    
    // 重载了getter, 使得访问服务和组件与访问类的属性一样。
    // 保留了原来Component的getter所具有的功能
    public function __get($name){}
}</code>
登录后复制

数据结构

SL提供了注册服务和组件的方法。

$_components用于缓存SL中的组件或服务的实例,为可读写的属性。

参考

以上就介绍了Yii源码解读-服务定位器(Service Locator),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

两个点博物馆:邦格荒地地点指南
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

两个点博物馆:邦格荒地地点指南
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

vue3怎么使用defineAsyncComponent与component标签实现动态渲染组件 vue3怎么使用defineAsyncComponent与component标签实现动态渲染组件 May 12, 2023 pm 05:55 PM

vue3怎么使用defineAsyncComponent与component标签实现动态渲染组件

java中private是什么意思 java中private是什么意思 Nov 24, 2022 pm 06:27 PM

java中private是什么意思

面试官:@Configuration 和 @Component 的区别 面试官:@Configuration 和 @Component 的区别 Aug 15, 2023 pm 04:29 PM

面试官:@Configuration 和 @Component 的区别

Vue 中使用 mixin、extend、component 等 API 实现组件定制的技巧 Vue 中使用 mixin、extend、component 等 API 实现组件定制的技巧 Jun 25, 2023 pm 03:28 PM

Vue 中使用 mixin、extend、component 等 API 实现组件定制的技巧

Java 函数的访问权限修饰符之 private 详解 Java 函数的访问权限修饰符之 private 详解 Apr 25, 2024 pm 04:48 PM

Java 函数的访问权限修饰符之 private 详解

Java程序展示不同的访问级别 Java程序展示不同的访问级别 Aug 19, 2023 pm 10:09 PM

Java程序展示不同的访问级别

react.component 报错怎么办 react.component 报错怎么办 Dec 20, 2022 am 10:49 AM

react.component 报错怎么办

react的component是什么 react的component是什么 Dec 05, 2022 pm 05:54 PM

react的component是什么

See all articles