7 Amalan Terbaik Laravel Yang Patut Diketahui
Setiap pembangun web mempunyai gaya tersendiri ketika menulis kod. Pada masa yang sama, jika kita menggunakan rangka kerja Laravel, semuanya sudah sedia, tetapi selalunya kita menyalahgunakan istilah di sini. Ia bukan masalah besar apabila ia datang kepada gaya yang berbeza, tetapi kami perlu memastikan bahawa kod kami mengikut gaya yang baik. Ini bermakna kod kami mestilah boleh diperluas, boleh diselenggara dan boleh diuji. [Cadangan berkaitan: Tutorial Video Laravel]
Apakah yang menjadikan kod kami buruk atau baik? Oleh kerana PHP ialah bahasa berorientasikan objek, kita harus mengikut prinsip berorientasikan objek, seperti prinsip reka bentuk SOLID, dan mempertimbangkan untuk menggunakan mekanisme berorientasikan objek, seperti pewarisan, abstraksi, dsb. Selain itu, Laravel mempunyai komuniti yang besar dan kadangkala terdapat beberapa konvensyen ciptaan komuniti. Oleh itu, pembangun laravel lain yang mengikuti konvensyen ini dapat memahami kod kami dengan lebih baik dan lebih pantas. Dalam artikel ini, saya akan menunjukkan kepada anda 7 amalan terbaik tentang Laravel berdasarkan prinsip berorientasikan objek dan beberapa konvensyen komuniti Laravel.
1. Model gemuk, pengawal nipis
Jika kita mempunyai pembina pertanyaan yang sangat kompleks atau pernyataan SQL mentah, kita harus mengalihkan pertanyaan ini ke model atau Dalam gudang .
Buruk:
<?php public function index() { $partners = Partner::where('email_verified_at', '!=', null) ->with(['products' => function ($q) { $q->whereDate('created_at', now()); }]) ->get(); return view('index', ['partners' => $partners]); }
Baik:
<?php public function index() { return view('index', ['partners' => $this->partner->newProducts()]); } class Partner extends Model { public function newProducts() { return $this->where('email_verified_at', '!=', null) ->with(['products' => function ($q) { $q->whereDate('created_at', now()); }]) ->get(); } }
2. Logik perniagaan dalam kelas perkhidmatan
Berkaitan dengan titik pertama di atas, kita harus mempunyai pengawal nipis dan kemudian kita harus memindahkan semua logik perniagaan ke dalam kelas perkhidmatan yang berasingan. Jadi pengawal sepatutnya hanya mempunyai satu tanggungjawab dan diharapkan kita boleh menggunakan semula perkhidmatan ini dalam pengawal lain.
Buruk:
<?php public function store(Request $request) { $user = User::create(); $user->update(['last_login' => now()]); dispatch(new UserCreated($user)); // ... }
Baik:
<?php public function store(Request $request) { $this->userService->create($request); .... } class UserService { public function create($request) { // ... } }
3. Pertanyaan fasih adalah lebih baik daripada pernyataan SQL asli.
Menggunakan Eloquent untuk pertanyaan lebih mudah dibaca, mengelakkan suntikan SQL dan lebih mudah diselenggara.
Buruk:
<?php SELECT * FROM `articles` WHERE EXISTS (SELECT * FROM `users` WHERE `articles`.`user_id` = `users`.`id` AND EXISTS (SELECT * FROM `profiles` WHERE `profiles`.`user_id` = `users`.`id`) AND `users`.`deleted_at` IS NULL) AND `verified` = '1' AND `active` = '1' ORDER BY `created_at` DESC
Baik:
<?php Article::has('user.profile')->verified()->latest()->get();
4.KERING (Jangan Ulang Sendiri)
Kita harus mempertimbangkan untuk memindahkan bahagian logik/komponen boleh guna semula ke tempat yang berasingan.
Dalam templat bilah, kami boleh menggunakan komponen untuk menggunakan semula bahagian hadapan. Dalam pelayan, kita boleh mengalihkan logik ke kelas perkhidmatan yang berasingan, skop Eloquent, atau bahkan mencipta pakej kita sendiri.
<!DOCTYPE html> <html> <head> <title>DRY</title> </head> <body> <h1>Custom Calendar</h1> <x-custom-calendar> </body> </html>
5. Jangan laksanakan pertanyaan dalam templat Blade
Walaupun melaksanakan pertanyaan dalam templat Blade boleh dilakukan, sebaiknya jangan berbuat demikian.
Teruk. Akan menyebabkan masalah N+1.
@foreach (User::all() as $user) {{ $user->email }} @endforeach
Okey:
$users = User::all(); // Server Query @foreach ($users as $user) {{ $user->email }} @endforeach
6. Gunakan transaksi pangkalan data
Jika kita mempunyai logik/pertanyaan yang rumit dan panjang, Maka kita harus mempertimbangkan untuk menggunakan transaksi pangkalan data. Dengan menggunakan ciri ini, kami boleh melancarkan semula pangkalan data dengan mudah jika perlu untuk memastikan data kami tidak disimpan ke pangkalan data, jadi kami yakin bahawa data kami boleh dipercayai.
<?php public function store(Request $request) { DB::beginTransaction(); $user = User::create(); $response = app('service')->create($user); if (!$response) { DB::rollback(); return; } // ... DB::commit(); }
7. Jangan hardcode teks
Kita tidak seharusnya mengeraskan sebarang teks dalam kod/pengawal. Ini menjadikannya mudah untuk diselenggara dan dilanjutkan pada masa hadapan. Jika kami ingin memaparkan mesej kepada pengguna, kami boleh menggunakan terjemahan, pemalar dalam model/kelas untuk menetapkan sebarang nilai atau fail konfigurasi untuk menyimpan konfigurasi kami.
trans('user.created'); // 'User Successfully Created' $types = Product::TYPES; // Const in a Class/Model
Alamat asal: https://cerwyn.medium.com/7-best-practices-in-laravel-you-should-know-2ed9878293de
Alamat terjemahan : https://learnku.com/laravel/t/67021
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Atas ialah kandungan terperinci 7 Amalan Terbaik Laravel Yang Patut Diketahui. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...
