Rumah pembangunan bahagian belakang tutorial 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>
Salin selepas log masuk

数据结构

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

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

参考

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah maksud peribadi dalam java Apakah maksud peribadi dalam java Nov 24, 2022 pm 06:27 PM

Di Java, persendirian bermaksud "peribadi" dan merupakan pengubah kawalan akses yang digunakan untuk mengubah suai kelas, sifat dan kaedah. Ahli kelas yang diubah suai dengan persendirian hanya boleh diakses dan diubah suai oleh kaedah kelas itu sendiri, dan tidak boleh diakses dan dirujuk oleh mana-mana kelas lain (termasuk subkelas kelas oleh itu, pengubahsuai persendirian mempunyai tahap perlindungan tertinggi);

Cara vue3 menggunakan teg defineAsyncComponent dan komponen untuk melaksanakan komponen pemaparan dinamik Cara vue3 menggunakan teg defineAsyncComponent dan komponen untuk melaksanakan komponen pemaparan dinamik May 12, 2023 pm 05:55 PM

1. Pengenalan dinamik asas komponen: Pengenalan dinamik ringkas bermaksud bahagian hadapan mengetahui komponen yang hendak diperkenalkan, dan memperkenalkan berbilang komponen ke dalam komponen induk, tetapi tidak menjadikannya selepas syarat tertentu dipenuhi, ia akan dipaparkan pada tahap tertentu lokasi. import{reactive,ref,shallowReactive,onActivated,defineAsyncComponent,}from'vue';constcustomModal=defineAsyncComponent(()=>import('./modal/CustomM

Penemuduga: Perbezaan antara @Configuration dan @Component Penemuduga: Perbezaan antara @Configuration dan @Component Aug 15, 2023 pm 04:29 PM

Memanggil kaedah beranotasi @Bean dalam kelas @Configuration mengembalikan contoh yang sama; memanggil kaedah beranotasi @Bean dalam kelas @Component mengembalikan kejadian baharu.

Petua menggunakan mixin, extend, komponen dan API lain untuk menyesuaikan komponen dalam Vue Petua menggunakan mixin, extend, komponen dan API lain untuk menyesuaikan komponen dalam Vue Jun 25, 2023 pm 03:28 PM

Vue.js ialah rangka kerja bahagian hadapan yang popular yang menyediakan banyak API untuk penyesuaian komponen. Artikel ini akan memperkenalkan mixin, extend, komponen dan API lain dalam Vue untuk membantu anda menguasai kemahiran penyesuaian komponen. Mixinmixin ialah cara untuk menggunakan semula kod komponen dalam Vue. Ia membolehkan kami menggunakan semula kod yang sudah ditulis ke dalam komponen yang berbeza, dengan itu mengurangkan keperluan untuk menulis kod pendua. Sebagai contoh, kami boleh menggunakan mixin untuk membantu kami menggabungkan berbilang kumpulan

Penjelasan terperinci tentang pengubah akses peribadi untuk fungsi Java Penjelasan terperinci tentang pengubah akses peribadi untuk fungsi Java Apr 25, 2024 pm 04:48 PM

Peribadi ialah pengubah suai akses Java yang mengehadkan kebolehcapaian fungsi kepada hanya kelas yang ditakrifkan, termasuk: fungsi itu tidak boleh diakses dalam kelas lain. Fungsi ini juga tidak boleh diakses dalam subkelas.

Program Java memaparkan tahap akses yang berbeza Program Java memaparkan tahap akses yang berbeza Aug 19, 2023 pm 10:09 PM

Pengubah suai akses digunakan untuk menetapkan ciri keterlihatan beberapa kelas, antara muka, pembolehubah, kaedah, pembina, ahli data, dan kaedah penetap dalam bahasa pengaturcaraan Java Dalam persekitaran Java, kami mempunyai jenis pengubah akses yang berbeza. Lalai - Jika kami mengisytiharkan fungsi, ia hanya akan kelihatan dalam pakej tertentu. Peribadi- Jika kami mengisytiharkan fungsi, ia akan tersedia hanya dalam kelas tertentu

Perkara yang perlu dilakukan jika react.component melaporkan ralat Perkara yang perlu dilakukan jika react.component melaporkan ralat Dec 20, 2022 am 10:49 AM

Penyelesaian kepada ralat react.component: 1. Buka fail reaksi yang sepadan, cari pernyataan "class Counter extends Component {static propTypes = {...", dan tukar tanda sama kepada titik bertindih 2. Ubah suai "{; "pratetap": ["react", "es2015", "stage-0"]}" sudah memadai.

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

在react中,component中文意思为“组件”,是封装起来的具有独立功能的UI部件;将要展示的内容,分成多个独立部分,每一个这样的部分,就是一个组件。组件有两个重要的东西,一个是属性,一个是状态。组件的属性是父组件给它的,存储的是父组件对子组件的要求,在组件内部可以对属性进行访问,但不可以修改它;组件的状态,由组件自行定义和使用,用来存储组件当前状态,组件的状态可以修改。

See all articles