Rumah Perpustakaan PHP Perpustakaan lain Pustaka PHP untuk bekas suntikan kebergantungan
Pustaka PHP untuk bekas suntikan kebergantungan
<?php
namespace Auryn;
class CachingReflector implements Reflector
{
    const CACHE_KEY_CLASSES = 'auryn.refls.classes.';
    const CACHE_KEY_CTORS = 'auryn.refls.ctors.';
    const CACHE_KEY_CTOR_PARAMS = 'auryn.refls.ctor-params.';
    const CACHE_KEY_FUNCS = 'auryn.refls.funcs.';
    const CACHE_KEY_METHODS = 'auryn.refls.methods.';
    private $reflector;
    private $cache;
    public function __construct(Reflector $reflector = null, ReflectionCache $cache = null)
    {
        $this->reflector = $reflector ?: new StandardReflector;
        $this->cache = $cache ?: new ReflectionCacheArray;
    }
    public function getClass($class)
    {
        $cacheKey = self::CACHE_KEY_CLASSES . strtolower($class);
        if (!$reflectionClass = $this->cache->fetch($cacheKey)) {
            $reflectionClass = new \ReflectionClass($class);
            $this->cache->store($cacheKey, $reflectionClass);
        }
        return $reflectionClass;
    }

Idea kami ialah apabila aplikasi menggunakan kelas Foo, ia akan mencipta kelas Foo dan memanggil kaedah kelas Foo Jika kaedah ini memerlukan kelas Bar, ia akan mencipta kelas Bar dan memanggil kaedah kelas Bar, dan kaedah ini Jika kelas Bim diperlukan, kelas Bim akan dibuat dan kemudian kerja lain akan dilakukan. Idea menggunakan suntikan dependensi ialah aplikasi menggunakan kelas Foo, kelas Foo memerlukan kelas Bar, dan kelas Bar memerlukan kelas Bim, kemudian buat kelas Bim dahulu, kemudian buat kelas Bar dan suntikan Bim, kemudian buat kelas Foo, dan masukkan kelas Bar , kemudian panggil kaedah Foo, Foo panggil kaedah Bar, dan kemudian lakukan kerja lain. Ini ialah corak Inretakon of Control. Kawalan kebergantungan diterbalikkan kepada permulaan rantaian panggilan. Dengan cara ini anda mempunyai kawalan penuh ke atas kebergantungan dan mengawal kelakuan program anda dengan melaraskan objek suntikan yang berbeza. Sebagai contoh, kelas Foo menggunakan memcache, dan anda boleh menggunakan redis sebaliknya tanpa mengubah suai kod kelas Foo.

Idea selepas menggunakan bekas suntikan kebergantungan ialah jika aplikasi perlu mengakses kelas Foo, ia mendapat kelas Foo daripada bekas, bekas mencipta kelas Bim, kemudian mencipta kelas Bar dan menyuntik Bim, kemudian mencipta Kelas Foo, dan menyuntik Bar ke dalamnya, dan kemudian menggunakan Program memanggil kaedah Foo, Foo memanggil kaedah Bar, dan kemudian melakukan kerja lain Secara ringkasnya, bekas bertanggungjawab untuk instantiasi, menyuntik kebergantungan, memproses kebergantungan, dsb.


Penafian

Semua sumber di laman web ini disumbangkan oleh netizen atau dicetak semula oleh tapak muat turun utama. Sila semak integriti perisian itu sendiri! Semua sumber di laman web ini adalah untuk rujukan pembelajaran sahaja. Tolong jangan gunakannya untuk tujuan komersial. Jika tidak, anda akan bertanggungjawab untuk semua akibat! Jika terdapat sebarang pelanggaran, sila hubungi kami untuk memadamkannya. Maklumat hubungan: admin@php.cn

Artikel Berkaitan

Bagaimana untuk mencipta pustaka fungsi PHP dan menjadikannya menyokong suntikan pergantungan? Bagaimana untuk mencipta pustaka fungsi PHP dan menjadikannya menyokong suntikan pergantungan?

26 Apr 2024

Cara mencipta pustaka fungsi PHP yang menyokong suntikan kebergantungan (DI): Cipta pakej Komposer sebagai pustaka fungsi. Laksanakan fungsi perpustakaan fungsi, seperti melaksanakan fungsi ucapan dalam fail. Pasang bekas PhpDI dan buat konfigurasi kontena, tambahkan kelas perpustakaan fungsi pada bekas sebagai definisi kilang. Gunakan perpustakaan dalam kod dan suntikan kebergantungan, seperti menggunakan bekas untuk mendapatkan contoh kelas perpustakaan. Dalam aplikasi praktikal, seperti menyimpan data pengguna ke pangkalan data, menyuntik sambungan pangkalan data untuk meningkatkan fleksibiliti.

Rangka kerja PHP manakah yang menyediakan bekas suntikan kebergantungan yang paling berkuasa untuk mengurus kebergantungan aplikasi? Rangka kerja PHP manakah yang menyediakan bekas suntikan kebergantungan yang paling berkuasa untuk mengurus kebergantungan aplikasi?

01 Jun 2024

Rangka kerja Laravel mempunyai bekas suntikan kebergantungan (DI) berkuasa yang membawa kelebihan berikut: Gandingan longgar, kebolehujian yang dipertingkatkan dan kebolehgunaan semula Pengurusan pergantungan yang dipermudah, lebih mudah untuk menukar dan menyelenggara Organisasi yang lebih baik, mengumpulkan komponen mengikut jenis Laravel Bekas DI (dipanggil " bekas perkhidmatan") menyediakan ciri berkuasa seperti pengikatan automatik, petunjuk jenis dan kontrak. Dengan menyuntik contoh perkhidmatan dalam pengawal dan perkhidmatan mengikat dalam pembekal perkhidmatan, kebergantungan boleh diurus dengan mudah, meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Artikel untuk bercakap tentang suntikan kebergantungan DI dalam php Artikel untuk bercakap tentang suntikan kebergantungan DI dalam php

25 Aug 2022

Apakah suntikan pergantungan DI? Artikel berikut akan memberi anda pemahaman yang mendalam tentang suntikan pergantungan DI dalam PHP. Saya harap ia akan membantu anda!

Pembangunan PHP: Cara menggunakan bekas IoC untuk mengurus kebergantungan Pembangunan PHP: Cara menggunakan bekas IoC untuk mengurus kebergantungan

14 Jun 2023

Pengurusan kebergantungan adalah aspek yang sangat penting dalam pembangunan aplikasi PHP moden. Apabila skala projek meningkat secara beransur-ansur, mengurus kebergantungan semua kelas secara manual menjadi sangat kompleks dan sukar. Atas sebab ini, bekas IoC (InversionofControl) telah menjadi penyelesaian yang baik. Artikel ini akan memperkenalkan bekas IoC dan cara menggunakannya untuk mengurus kebergantungan dalam aplikasi PHP. Apakah bekas IoC? Bekas IoC ialah bekas yang digunakan untuk mengurus kebergantungan objek.

Suntikan ketergantungan dan bekas perkhidmatan untuk fungsi PHP Suntikan ketergantungan dan bekas perkhidmatan untuk fungsi PHP

27 Apr 2024

Jawapan: Suntikan ketergantungan dan bekas perkhidmatan dalam PHP membantu mengurus kebergantungan secara fleksibel dan meningkatkan kebolehujian kod. Suntikan kebergantungan: Lulus kebergantungan melalui bekas untuk mengelakkan penciptaan langsung dalam fungsi, meningkatkan fleksibiliti. Bekas perkhidmatan: menyimpan contoh pergantungan untuk akses mudah dalam program, meningkatkan lagi gandingan longgar. Kes praktikal: Aplikasi sampel menunjukkan aplikasi praktikal bekas suntikan kebergantungan dan perkhidmatan, menyuntik kebergantungan ke dalam pengawal, mencerminkan kelebihan gandingan longgar.

Bagaimana untuk Mencipta Perpustakaan Statik daripada Berbilang Perpustakaan Statik Lain? Bagaimana untuk Mencipta Perpustakaan Statik daripada Berbilang Perpustakaan Statik Lain?

17 Dec 2024

Mencipta Perpustakaan Statik yang Berpaut ke Perpustakaan Statik Lain Apabila membina perpustakaan statik yang bergantung pada kebergantungan daripada berbilang yang lain...

See all articles