Home >Backend Development >PHP Tutorial >Yii source code interpretation-Service Locator (Service Locator)

Yii source code interpretation-Service Locator (Service Locator)

WBOY
WBOYOriginal
2016-07-29 08:57:50962browse

SL is also designed to be decoupled and is very suitable for service- and component-based applications.

Service Locator acts as a runtime linker and can dynamically modify the services selected by a class at runtime without having to make any modifications to the class.

A class can be targeted to increase, decrease, or replace the services it needs at runtime, thereby achieving a certain degree of optimization.

Achieve complete decoupling of service providers and service users, facilitating independent testing and code reuse across frameworks.

Basic functions

SL in Yii is implemented by yiidiServiceLocator

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

Data structure

SL provides methods to register services and components.

$_components is used to cache instances of components or services in SL and is a readable and writable attribute.

Reference

The above introduces the Yii source code interpretation - Service Locator (Service Locator), including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn