Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Rangka kerja DI untuk fungsi PHP

Rangka kerja DI untuk fungsi PHP

PHPz
PHPzasal
2023-05-22 08:13:351282semak imbas

Dengan perkembangan berterusan teknologi Internet, pelbagai bahasa pengaturcaraan dan rangka kerja muncul tanpa henti. Antaranya, PHP, sebagai bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web, telah menjadi salah satu pilihan popular untuk membina aplikasi web. Pada masa yang sama, memandangkan banyak aplikasi web memerlukan kawalan logik yang kompleks, penggunaan rangka kerja suntikan kebergantungan (DI) untuk meningkatkan kebolehselenggaraan dan modulariti kod telah menjadi trend yang tidak dapat dielakkan.

Jadi, apakah itu rangka kerja suntikan pergantungan? Ringkasnya, suntikan kebergantungan mengurus kebergantungan antara komponen dengan mengisytiharkan kebergantungan dan bukannya mencipta objek secara langsung. Dalam pengaturcaraan berorientasikan objek, selalunya terdapat saling bergantung antara objek, dan rangka kerja suntikan kebergantungan boleh membantu kami mengurus kebergantungan ini dengan lebih baik. Biasanya, kebergantungan ditakrifkan sebagai parameter pembina atau kaedah Setter, supaya kita boleh menyuntik objek bergantung secara automatik ke dalam objek apabila menciptanya, dengan itu membolehkan penggunaan objek yang fleksibel dalam senario yang berbeza.

Dalam pembangunan PHP, terdapat banyak rangka kerja suntikan pergantungan yang sangat baik, seperti Symfony, Laravel, dsb. Seterusnya kami akan memperkenalkan rangka kerja suntikan kebergantungan dengan fungsi sebagai teras.

Rangka kerja DI untuk fungsi PHP

Rangka kerja DI (Suntikan Ketergantungan) untuk fungsi PHP ialah rangka kerja suntikan kebergantungan berasaskan fungsi yang menggunakan fungsi PHP sendiri untuk membenarkan pengaturcara mentakrifkan kebergantungan. Rangka kerja adalah rangka kerja ringan yang sesuai untuk pembangunan aplikasi kecil. Mari perkenalkan prinsip pelaksanaan dan kaedah penggunaan rangka kerja ini satu demi satu.

Prinsip Pelaksanaan

Dalam rangka kerja DI fungsi PHP, kami menggunakan kaedah add_function() untuk menambah fungsi dan kaedah add_dependency() untuk menentukan kebergantungan. Apabila kita memanggil fungsi, rangka kerja secara automatik menyemak kebergantungan fungsi dan secara automatik menyuntik komponen bergantung sebelum fungsi itu dilaksanakan.

Berikut ialah kod teras rangka kerja DI bagi fungsi PHP Pelaksanaan khusus adalah seperti berikut:

class Container {
    protected $dependencies = [];
    
    public function add_function($name, $fn) {
        $this->dependencies[$name] = $fn;
    }
    
    public function add_dependency($name, $dependency) {
        $this->dependencies[$name]['dependencies'][] = $dependency;
    }
    
    public function get($name) {
        if(isset($this->dependencies[$name]['dependencies'])) {
            $dependencies = [];
            foreach($this->dependencies[$name]['dependencies'] as $dependency) {
                $dependencies[] = $this->get($dependency);
            }
            return call_user_func_array($this->dependencies[$name], $dependencies);
        }
        return $this->dependencies[$name];
    }
}

Kaedah penggunaan

Kita boleh mengikuti langkah berikut untuk. gunakan rangka kerja DI bagi fungsi PHP:

  1. Buat objek Bekas
$container = new Container();
  1. Tambah fungsi
$container->add_function('handler', function($request, $db) {
    ...
});
  1. Tambah kebergantungan
$container->add_dependency('handler', 'request');
$container->add_dependency('handler', 'db');
  1. Laksanakan fungsi
$handler = $container->get('handler');
$handler($request, $db);

Apabila kita memanggil kaedah get(), rangka kerja akan menyemak sama ada fungsi itu mempunyai kebergantungan, dan jika terdapat adalah kebergantungan, ia akan melaksanakan secara rekursif kebergantungan ini, dan lulus hasilnya sebagai parameter kepada fungsi.

Kita dapat melihat bahawa pengurusan pergantungan antara komponen boleh diselesaikan dengan mudah menggunakan rangka kerja DI bagi fungsi PHP.

Ringkasan

Rangka kerja DI untuk fungsi PHP ialah rangka kerja suntikan kebergantungan yang mudah dan mudah digunakan yang menggunakan fungsi PHP sendiri untuk membolehkan pengaturcara mentakrifkan kebergantungan. Keseluruhan rangka kerja adalah sangat ringan dan sesuai untuk pembangunan aplikasi kecil. Jika anda tidak perlu menggunakan rangka kerja suntikan pergantungan yang lebih kompleks, rangka kerja DI untuk fungsi PHP sudah pasti merupakan pilihan yang baik.

Atas ialah kandungan terperinci Rangka kerja DI untuk fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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