Rumah > rangka kerja php > Laravel > teks badan

Apakah perbezaan antara kontrak dan fasad dalam laravel

WBOY
Lepaskan: 2022-02-15 16:37:01
asal
3033 orang telah melayarinya

Perbezaan: 1. Kontrak merujuk kepada satu siri antara muka yang disediakan oleh rangka kerja yang mentakrifkan perkhidmatan teras, manakala fasad menyediakan antara muka statik untuk kelas bekas perkhidmatan IoC 2. Kontrak boleh dianggap sebagai antara muka definisi kaedah bagi fungsi rangka kerja , menyimpan kebanyakan kaedah, dan fasad menyediakan kaedah, menyediakan panggilan statik, dan tidak perlu menyuntik antara muka.

Apakah perbezaan antara kontrak dan fasad dalam laravel

Persekitaran pengendalian tutorial ini: sistem Windows 10, versi Laravel 6, komputer DELL G3.

Apakah perbezaan antara kontrak dan fasad dalam laravel

Pengenalan

Kontrak Laravel ialah satu set antara muka yang disediakan oleh rangka kerja dan tentukan perkhidmatan teras. Sebagai contoh, kontrak illustrateContractsQueueQueue mentakrifkan kaedah yang diperlukan untuk membuat giliran kerja, manakala kontrak illustrateContractsMailMailer mentakrifkan kaedah yang diperlukan untuk menghantar mel. Kontrak juga dipanggil kontrak

Dalam kajian terdahulu kami, kami mempelajari banyak fungsi tambahan dan kaedah mudah yang disediakan oleh fasad Facades, yang boleh melaksanakan kaedah tanpa petunjuk jenis Dalam kebanyakan kes, setiap Setiap fasad mempunyai yang sepadan kaedah kontrak. Tidak seperti fasad, kontrak membolehkan anda menentukan kebergantungan yang jelas untuk kelas.

Bila menggunakan kontrak

Seperti yang dibincangkan di tempat lain Seperti yang dibincangkan, banyak keputusan untuk digunakan Kontrak atau Fasad akan bergantung kepada keutamaan peribadi dan keutamaan pasukan pembangunan. Kedua-dua Kontrak dan Fasad boleh digunakan untuk mencipta aplikasi Laravel yang berkuasa dan diuji dengan baik. Selagi anda memberi tumpuan kepada fakta bahawa kelas harus mempunyai satu tanggungjawab, anda akan mendapati bahawa perbezaan sebenar antara menggunakan kontrak atau fasad sebenarnya sangat kecil.

Bagaimana untuk menggunakan kontrak

Jadi, bagaimana untuk melaksanakan kontrak? Ia sebenarnya sangat mudah.

Banyak kelas dalam Laravel diselesaikan melalui bekas perkhidmatan, termasuk pengawal, pendengar acara, perisian tengah, tugas baris gilir dan juga penutupan laluan. Oleh itu, untuk melaksanakan kontrak, anda hanya "taip-petunjuk" antara muka dalam pembina kelas yang diselesaikan.

Sebagai contoh, lihat pendengar acara ini:

<?php
namespace App\Listeners;
use App\Events\OrderWasPlaced;
use App\Models\User;
use Illuminate\Contracts\Redis\Factory;
class CacheOrderInformation
{
    /**
     * Redis 工厂实现
     */
    protected $redis;
    /**
     * 创建一个事件处理实例
     *
     * @param  Factory  $redis
     * @return void
     */
    public function __construct(Factory $redis)
    {
        $this->redis = $redis;
    }
    /**
     * 处理事件
     *
     * @param  OrderWasPlaced  $event
     * @return void
     */
    public function handle(OrderWasPlaced $event)
    {
        //
    }
}
Salin selepas log masuk

Perbezaan antara kontrak dan fasad

Kontrak sebenarnya merujuk kepada satu siri fungsi yang disediakan oleh rangka kerja Tentukan antara muka perkhidmatan teras Kata kunci adalah antara muka ini. Melihat pada kod di atas, anda boleh memahami fungsi antara muka ini . menyusahkan, jadi fasad dilahirkan untuk menyediakan panggilan Statik, tidak perlu menyuntik antara muka.

[Cadangan berkaitan:

tutorial video laravel

]

Atas ialah kandungan terperinci Apakah perbezaan antara kontrak dan fasad dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!