Rumah  >  Artikel  >  rangka kerja php  >  Laravel - Kontrak

Laravel - Kontrak

王林
王林asal
2024-08-27 10:50:50700semak imbas

Kontrak Laravel ialah satu set antara muka dengan pelbagai fungsi dan perkhidmatan teras yang disediakan oleh rangka kerja.

Contohnya, kontrak IlluminateContractsQueueQueue menggunakan kaedah yang diperlukan untuk kerja beratur dan IlluminateContractsMailMailer menggunakan kaedah untuk menghantar e-mel.

Setiap kontrak yang ditakrifkan termasuk pelaksanaan rangka kerja yang sepadan. Semua kontrak Laravel tersedia dalam repositori GitHub seperti yang dinyatakan di bawah −

https://github.com/illuminate/contracts

Repositori ini menyediakan pelbagai kontrak yang tersedia dalam rangka kerja Laravel yang boleh dimuat turun dan digunakan sewajarnya.

Perkara Penting

Semasa bekerja dengan kontrak Laravel, sila ambil perhatian perkara penting berikut −

  • Adalah wajib untuk menentukan fasad dalam pembina kelas.

  • Kontrak ditakrifkan secara eksplisit dalam kelas dan anda tidak perlu mentakrifkan kontrak dalam pembina.

Contoh

Pertimbangkan kontrak yang digunakan untuk Kebenaran dalam Laravel yang disebutkan di bawah −

<?php

namespace Illuminate\Contracts\Auth\Access;

interface Authorizable{
   /**
      * Determine if the entity has a given ability.
      *
      * @param string $ability
      * @param array|mixed $arguments
      * @return bool
   */
   public function can($ability, $arguments = []);
}

Kontrak menggunakan tin fungsi yang merangkumi parameter bernama kebolehan dan argumen yang menggunakan pengenalan pengguna dalam bentuk array.

Anda perlu menentukan kontrak seperti yang ditunjukkan dalam sintaks di bawah −

interface <contract-name>

Kontrak digunakan seperti fasad untuk mencipta aplikasi Laravel yang teguh dan diuji dengan baik. Terdapat pelbagai perbezaan praktikal dengan penggunaan kontrak dan fasad.

Kod berikut menunjukkan menggunakan kontrak untuk menyimpan cache repositori −

<?php

namespace App\Orders;
use Illuminate\Contracts\Cache\Repository as Cache;

class Repository{
   /**
      * The cache instance.
   */
   
   protected $cache;
   
   /**
      * Create a new repository instance.
      *
      * @param Cache $cache
      * @return void
   */
   
   public function __construct(Cache $cache) {
      $this->cache = $cache;
   }
}

Kontrak tidak mengandungi pelaksanaan dan kebergantungan baharu; adalah mudah untuk menulis pelaksanaan alternatif bagi kontrak yang ditentukan, oleh itu pengguna boleh menggantikan pelaksanaan cache tanpa mengubah suai sebarang asas kod.

Atas ialah kandungan terperinci Laravel - Kontrak. 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
Artikel sebelumnya:Laravel - FasadArtikel seterusnya:Laravel - Fasad