Rumah > rangka kerja php > Laravel > teks badan

apakah fasad laravel

WBOY
Lepaskan: 2022-03-15 11:35:29
asal
3559 orang telah melayarinya

Dalam laravel, fasad ialah antara muka "statik" yang disediakan untuk kelas mengikat dalam bekas perkhidmatan aplikasi. Ia boleh memberikan sintaks yang lebih mudah untuk diuji, lebih fleksibel, ringkas dan elegan semasa penyelenggaraan. Semua fasad ditakrifkan di bawah ruang nama "IlluminateSupportFacades".

apakah fasad laravel

Persekitaran pengendalian artikel ini: sistem Windows 10, Laravel versi 6, komputer Dell G3.

Apakah fasad laravel?

Fasad menyediakan antara muka "statik" untuk mengikat kelas dalam bekas perkhidmatan aplikasi.

Laravel mempunyai banyak Fasad terbina dalam, yang boleh mengakses kebanyakan fungsi Laravel.

Fasad Laravel berfungsi sebagai "proksi statik" untuk kelas asas dalam bekas perkhidmatan Berbanding dengan kaedah statik tradisional, ia boleh memberikan sintaks yang lebih mudah untuk diuji, lebih fleksibel, ringkas dan elegan semasa penyelenggaraan.

Semua fasad Laravel ditakrifkan di bawah ruang nama IlluminateSupportFacades.

Kami boleh mengakses fasad dengan mudah:

use Illuminate\Support\Facades\Cache;
Route::get('/cache', function () {
    return Cache::get('key');
});
Salin selepas log masuk

Sepanjang dokumentasi Laravel, banyak contoh menggunakan fasad untuk menunjukkan pelbagai ciri rangka kerja.

Bila hendak menggunakan Fasad

Fasad mempunyai banyak kelebihan Ia menyediakan sintaks yang ringkas dan mudah diingati, membolehkan kita menggunakannya tanpa perlu mengingati kelas yang panjang nama. Ciri-ciri fungsian yang disediakan oleh Laravel, di samping itu, menjadikannya mudah untuk diuji kerana penggunaan kaedah dinamik PHP yang unik.

Apabila menggunakan Facades, terdapat beberapa tempat yang memerlukan perhatian khusus.

Risiko utama menggunakan Facades ialah ia akan menyebabkan skop kelas berkembang.

Oleh kerana Facades sangat mudah digunakan dan tidak memerlukan suntikan, kami secara tidak sengaja akan menggunakan banyak Facades dalam satu kelas, menyebabkan kelas menjadi lebih besar dan lebih besar.

Apabila menggunakan suntikan kebergantungan, lebih banyak kelas digunakan, lebih lama kaedah pembinaan, yang akan menarik perhatian visual dan mengingatkan anda bahawa kelas ini agak besar. Oleh itu, apabila menggunakan Facades, beri perhatian khusus untuk mengawal saiz kelas untuk memastikan skop kelas pendek.

Apabila membangunkan pakej sambungan pihak ketiga yang berinteraksi dengan Laravel, disyorkan untuk menyuntik kontrak Laravel dan bukannya menggunakan Facades untuk menggunakan kelas. Oleh kerana sambungan dibina di luar Laravel itu sendiri, anda tidak boleh menggunakan Laravel Facades untuk menguji fungsi pembantu.

Facades Vs. Suntikan Ketergantungan

Salah satu kelebihan utama suntikan kebergantungan ialah keupayaan untuk menukar pelaksanaan kelas yang disuntik. Ini berguna semasa menguji kerana anda boleh menyuntik mock atau stub dan menegaskan pelbagai kaedah yang dipanggil pada stub.

Biasanya, kaedah yang benar-benar statik tidak boleh diejek atau ditikam. Walau bagaimanapun, kerana Facades menggunakan kaedah dinamik untuk memanggil kaedah proksi pada objek yang diselesaikan daripada bekas perkhidmatan, kami boleh menguji Facades seperti kami menguji contoh kelas yang disuntik. Contohnya, seperti laluan berikut:

use Illuminate\Support\Facades\Cache;
 
Route::get('/cache', function () {
    return Cache::get('key');
})
Salin selepas log masuk

Kami boleh menulis ujian seperti ini untuk mengesahkan bahawa kaedah Cache::get dipanggil mengikut cara yang kami jangkakan:

use Illuminate\Support\Facades\Cache;
/**
 * 一个基础功能的测试用例。
 *
 * @return void
 */
public function testBasicExample()
{
Cache::shouldReceive('get')
->with('key')
->andReturn('value');
$this->visit('/cache')
->see('value');
}
Salin selepas log masuk

[Cadangan berkaitan:Tutorial video Laravel

Atas ialah kandungan terperinci apakah fasad 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!