Rumah > rangka kerja php > Laravel > Laravel - Kontrak

Laravel - Kontrak

王林
Lepaskan: 2024-08-27 10:50:50
asal
753 orang telah melayarinya

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 = []);
}
Salin selepas log masuk

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>
Salin selepas log masuk

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;
   }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber: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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan