Rumah pembangunan bahagian belakang tutorial php Suntikan ketergantungan dan bekas perkhidmatan untuk fungsi PHP

Suntikan ketergantungan dan bekas perkhidmatan untuk fungsi PHP

Apr 27, 2024 pm 01:39 PM
suntikan pergantungan bekas perkhidmatan

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 kejadian 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.

PHP 函数的依赖注入和服务容器

Dependency Injection dan Service Container untuk PHP Functions

Pengenalan
Dependency Injection (DI) ialah corak reka bentuk yang membolehkan kita melepasi dependensi dalam fungsi dan bukannya menciptanya secara langsung dalam badan Ini menjadikan kod kami lebih fleksibel dan boleh diuji. Bekas perkhidmatan ialah perpustakaan yang menguruskan kebergantungan. Ia menyimpan satu contoh untuk setiap kebergantungan dan membolehkan kami mengaksesnya dari mana-mana sahaja dalam aplikasi.

Dependency Injection
Untuk menggunakan dependency injection dalam fungsi PHP, kita boleh menggunakan kelas yang dipanggil "bekas". Kelas ini akan bertanggungjawab untuk mencipta dan menyimpan kebergantungan.

class Container {
  private $dependencies = [];

  public function get($dependency) {
    if (!isset($this->dependencies[$dependency])) {
      $this->dependencies[$dependency] = $this->create($dependency);
    }
    return $this->dependencies[$dependency];
  }

  private function create($dependency) {
    switch ($dependency) {
      case 'Database':
        return new Database();
      case 'Logger':
        return new Logger();
      default:
        throw new Exception('Unknown dependency: ' . $dependency);
    }
  }
}
Salin selepas log masuk

Kini, kita boleh menggunakan kaedah get() dalam fungsi untuk mendapatkan dependensi: get() 方法来获取依赖项:

function sendEmail(Container $container, string $to, string $subject, string $body) {
  $mailer = $container->get('Mailer');
  $mailer->send($to, $subject, $body);
}
Salin selepas log masuk

服务容器
服务容器是一种管理依赖项的扩展库。它为每个依赖项存储一个单一的实例,并允许我们在应用程序的任何地方访问它们。

在 PHP 中,我们推荐使用 Symfony 的 ContainerInterfaceContainerBuilder 类。

// 配置服务容器
$container = new ContainerBuilder();
$container->register('database', Database::class);
$container->register('logger', Logger::class);

// 编译服务容器
$container->compile();

// 使用服务容器
$database = $container->get('database');
$logger = $container->get('logger');
Salin selepas log masuk

实战案例
以下是一个使用依赖注入和服务容器的示例应用程序:

// index.php
require 'vendor/autoload.php';
$container = new Container();
$controller = $container->get('Controller');
$controller->index();

// Controller.php
class Controller {
  private $database;
  private $logger;

  public function __construct(Container $container) {
    $this->database = $container->get('Database');
    $this->logger = $container->get('Logger');
  }

  public function index() {
    // ...
  }
}

// Database.php
class Database {
  // ...
}

// Logger.php
class Logger {
  // ...
}
Salin selepas log masuk

在这个应用程序中,我们使用依赖注入将 DatabaseLogger 依赖项传递到 Controllerrrreee

Service ContainerContainer perkhidmatan ialah pustaka sambungan yang menguruskan dependencies. Ia menyimpan satu contoh untuk setiap pergantungan dan membolehkan kami mengaksesnya dari mana-mana sahaja dalam aplikasi.

Dalam PHP, kami mengesyorkan menggunakan kelas ContainerInterface dan ContainerBuilder Symfony. 🎜rrreee🎜🎜Kes praktikal🎜🎜Berikut ialah contoh aplikasi menggunakan suntikan kebergantungan dan bekas perkhidmatan: 🎜rrreee🎜Dalam aplikasi ini, kami menggunakan suntikan kebergantungan untuk menggabungkan Pangkalan Data dan Logger kebergantungan dihantar ke kelas <code>Controller. Bekas perkhidmatan bertanggungjawab untuk mencipta dan mengurus kebergantungan ini. 🎜🎜🎜Kesimpulan🎜🎜Suntikan kebergantungan dan bekas perkhidmatan ialah alat berkuasa untuk meningkatkan fleksibiliti dan kebolehujian aplikasi PHP. Mereka membenarkan kami mengurus kebergantungan secara longgar, menjadikan kod kami lebih mudah untuk dikekalkan dan dilanjutkan. 🎜

Atas ialah kandungan terperinci Suntikan ketergantungan dan bekas perkhidmatan untuk fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China 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)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan 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)

Panduan langkah demi langkah untuk memahami suntikan pergantungan dalam Angular Panduan langkah demi langkah untuk memahami suntikan pergantungan dalam Angular Dec 02, 2022 pm 09:14 PM

Artikel ini akan membawa anda melalui suntikan pergantungan, memperkenalkan masalah yang diselesaikan oleh suntikan pergantungan dan kaedah penulisan asalnya, dan bercakap tentang rangka kerja suntikan pergantungan Angular saya harap ia akan membantu semua orang.

Cara menggunakan suntikan kebergantungan (Dependency Injection) dalam rangka kerja Phalcon Cara menggunakan suntikan kebergantungan (Dependency Injection) dalam rangka kerja Phalcon Jul 30, 2023 pm 09:03 PM

Pengenalan kepada kaedah menggunakan suntikan kebergantungan (DependencyInjection) dalam rangka kerja Phalcon: Dalam pembangunan perisian moden, suntikan kebergantungan (DependencyInjection) ialah corak reka bentuk biasa yang bertujuan untuk meningkatkan kebolehselenggaraan dan kebolehujian kod. Sebagai rangka kerja PHP yang pantas dan kos rendah, rangka kerja Phalcon juga menyokong penggunaan suntikan kebergantungan untuk mengurus dan mengatur kebergantungan aplikasi. Artikel ini akan memperkenalkan anda cara menggunakan rangka kerja Phalcon

Corak suntikan kebergantungan dalam lulus parameter fungsi Golang Corak suntikan kebergantungan dalam lulus parameter fungsi Golang Apr 14, 2024 am 10:15 AM

Dalam Go, mod suntikan kebergantungan (DI) dilaksanakan melalui hantaran parameter fungsi, termasuk hantaran nilai dan hantaran penunjuk. Dalam corak DI, kebergantungan biasanya diluluskan sebagai petunjuk untuk meningkatkan penyahgandingan, mengurangkan pertikaian kunci dan menyokong kebolehujian. Dengan menggunakan penunjuk, fungsi itu dipisahkan daripada pelaksanaan konkrit kerana ia hanya bergantung pada jenis antara muka. Hantaran penunjuk juga mengurangkan overhed menghantar objek besar, dengan itu mengurangkan pertengkaran kunci. Tambahan pula, corak DI memudahkan untuk menulis ujian unit untuk fungsi menggunakan corak DI kerana kebergantungan boleh dipermainkan dengan mudah.

Suntikan kebergantungan menggunakan rangka kerja ujian unit JUnit Suntikan kebergantungan menggunakan rangka kerja ujian unit JUnit Apr 19, 2024 am 08:42 AM

Untuk menguji suntikan kebergantungan menggunakan JUnit, ringkasannya adalah seperti berikut: Gunakan objek olok-olok untuk mencipta kebergantungan: Anotasi @Mock boleh mencipta objek olok-olok bagi kebergantungan. Tetapkan data ujian: Kaedah @Sebelum dijalankan sebelum setiap kaedah ujian dan digunakan untuk menetapkan data ujian. Konfigurasikan tingkah laku olok-olok: Kaedah Mockito.when() mengkonfigurasi gelagat yang dijangkakan bagi objek olok-olok. Sahkan keputusan: assertEquals() menegaskan untuk menyemak sama ada hasil sebenar sepadan dengan nilai yang dijangkakan. Aplikasi praktikal: Anda boleh menggunakan rangka kerja suntikan kebergantungan (seperti Rangka Kerja Spring) untuk menyuntik kebergantungan, dan mengesahkan ketepatan suntikan dan operasi biasa kod melalui ujian unit JUnit.

Bahasa Go: Panduan Suntikan Ketergantungan Bahasa Go: Panduan Suntikan Ketergantungan Apr 07, 2024 pm 12:33 PM

Jawapan: Dalam bahasa Go, suntikan kebergantungan boleh dilaksanakan melalui antara muka dan struktur. Tentukan antara muka yang menerangkan tingkah laku kebergantungan. Buat struktur yang melaksanakan antara muka ini. Suntikan kebergantungan melalui antara muka sebagai parameter dalam fungsi. Membenarkan penggantian mudah kebergantungan dalam ujian atau senario yang berbeza.

Suntikan ketergantungan dan bekas perkhidmatan untuk fungsi PHP Suntikan ketergantungan dan bekas perkhidmatan untuk fungsi PHP Apr 27, 2024 pm 01:39 PM

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.

Terangkan konsep suntikan ketergantungan (DI) dalam PHP. Terangkan konsep suntikan ketergantungan (DI) dalam PHP. Apr 05, 2025 am 12:07 AM

Nilai teras menggunakan suntikan ketergantungan (DI) dalam PHP terletak pada pelaksanaan seni bina sistem yang ditambah dengan longgar. DI mengurangkan kebergantungan langsung antara kelas dengan menyediakan kebergantungan secara luaran, meningkatkan kesesuaian kod dan fleksibiliti. Apabila menggunakan DI, anda boleh menyuntik kebergantungan melalui pembina, kaedah set-point, atau antara muka, dan menguruskan hayat objek dan kebergantungan dalam kombinasi dengan bekas IOC.

Bagaimana untuk menggunakan suntikan pergantungan untuk ujian unit di Golang? Bagaimana untuk menggunakan suntikan pergantungan untuk ujian unit di Golang? Jun 02, 2024 pm 08:41 PM

Menggunakan suntikan pergantungan (DI) dalam ujian unit Golang boleh mengasingkan kod yang akan diuji, memudahkan persediaan ujian dan penyelenggaraan. Perpustakaan DI yang popular termasuk wayar dan go-inject, yang boleh menjana stub pergantungan atau ejekan untuk ujian. Langkah-langkah ujian DI termasuk menetapkan kebergantungan, menyediakan kes ujian dan menegaskan keputusan. Contoh penggunaan DI untuk menguji fungsi pengendalian permintaan HTTP menunjukkan betapa mudahnya untuk mengasingkan dan menguji kod tanpa kebergantungan atau komunikasi sebenar.

See all articles