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