Rumah >pembangunan bahagian belakang >tutorial php >Bootstrap Bekas Perkhidmatan: Bermula

Bootstrap Bekas Perkhidmatan: Bermula

PHPz
PHPzasal
2024-07-16 16:21:59621semak imbas

Service Container Bootstrap: Getting Started

Sebelum memulakan topik, buat dua fail baharu dalam direktori pengawal:

  1. destroy.php yang mengandungi kod yang digunakan untuk memadam nota daripada pangkalan data.
  2. store.php yang mengandungi kod untuk mencipta nota baharu menggunakan borang dan kaedah permintaan.

Pengenalan kepada Bekas Perkhidmatan

Bekas Perkhidmatan ialah corak reka bentuk yang memusatkan pengurusan kebergantungan antara objek, menyediakan cara berstruktur untuk mengakses dan mengurus perkhidmatan dalam aplikasi.

Ia bertindak sebagai pendaftaran untuk perkhidmatan dalam tapak web.

Kelas Kontena

Mula-mula buat fail bernama Controller.php dalam direktori Teras. Dalam ini mulakan kelas Container, yang bertanggungjawab untuk mengurus pengikatan dan resolusi perkhidmatan.

  • bind(): Mendaftarkan perkhidmatan dengan bekas.
  • resolve(): Mendapatkan semula perkhidmatan daripada bekas.
class Container {
    protected $bindings = [];

    public function bind($key, $resolver) {
        $this->bindings[$key] = $resolver;
    }

    public function resolve($key) {
        if (!array_key_exists($key, $this->bindings)) {
            throw new Exception("No matching binding found for {$key}");
        }
        $resolver = $this->bindings[$key];
        return call_user_func($resolver);
    }
}

Kelas Apl

Kelas Apl bertindak sebagai antara muka untuk Bekas, menyediakan antara muka yang mudah untuk mengakses perkhidmatan.

  • setContainer(): Menetapkan contoh bekas untuk Apl.
  • bekas(): Mengambil contoh bekas.
  • bind(): Mendaftarkan perkhidmatan dengan bekas.
  • resolve(): Mendapatkan semula perkhidmatan daripada bekas.
class App {
    protected static $container;

    public static function setContainer($container) {
        static::$container = $container;
    }

    public static function container() {
        return static::$container;
    }

    public static function bind($key, $resolver) {
        static::container()->bind($key, $resolver);
    }

    public static function resolve($key) {
        return static::container()->resolve($key);
    }
}

Bootstrap

Bootstrap ialah titik aplikasi, di mana segala-galanya disediakan dan dimulakan.

$container = new Container();
$container->bind('Core\Database', function () {
    $config = require base_path('config.php');
    return new Database($config['database']);
});
App::setContainer($container);

Dalam ini, proses bootstrap:

  1. Mencipta contoh Bekas baharu ($bekas)
  2. Daftar perkhidmatan dengan bekas menggunakan kaedah bind (cth., CoreDatabase)
  3. Tetapkan bekas untuk Apl menggunakan App::setContainer($container)

Pengawal

Perkhidmatan boleh diselesaikan daripada bekas dalam pengawal menggunakan kaedah App::resolve().

$db = App::resolve('Core\Database');

Kini bekas perkhidmatan dibina dengan betul dan anda dapat melihat projek itu berfungsi dengan baik.

Saya harap anda telah memahaminya dengan jelas.

Atas ialah kandungan terperinci Bootstrap Bekas Perkhidmatan: Bermula. 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