Rumah > pembangunan bahagian belakang > tutorial php > Penggunaan mesej pesanan lebih tinggi untuk kod laraver yang lebih ekspresif

Penggunaan mesej pesanan lebih tinggi untuk kod laraver yang lebih ekspresif

Susan Sarandon
Lepaskan: 2025-01-27 20:14:13
asal
1021 orang telah melayarinya

Utilisation des Higher-Order Messages pour un code plus expressif en Laravel

Laravel telah menarik banyak perhatian untuk kesederhanaan dan ciri -ciri yang kuat. Di antara banyak ciri, berita peringkat tinggi adalah mutiara, yang menjadikan kod itu lebih ekspresif dan lebih mudah. Artikel ini akan meneroka aplikasi berita tinggi dan kebolehbacaannya dalam meningkatkan kod.


Apakah berita tinggi -level?

Mesej tinggi -level Ini adalah kaedah yang boleh memanggil kaedah lain pada setiap elemen set atau objek, tanpa menulis kitaran eksplisit. Dalam erti kata lain, ia adalah pintasan tatabahasa yang menjadikan kod anda lebih lancar dan lebih mudah dibaca.

Ciri ini amat berguna apabila memproses set di Laravel, tetapi ia juga sesuai untuk konteks lain.

Contoh Klasik: Koleksi


mari kita lihat contoh mudah. Katakan anda mempunyai koleksi pengguna, dan anda ingin mengaktifkan semua pengguna yang tidak berjaya. Sekiranya tidak ada berita tinggi, anda boleh menulis ini:

Gunakan berita tinggi tinggi, anda boleh memudahkan kod ini menjadi satu baris:

di sini, adalah kaedah perhimpunan,
<code class="language-php">$users = User::where('active', false)->get();

foreach ($users as $user) {
    $user->activate();
}</code>
Salin selepas log masuk
adalah kaedah yang anda ingin panggil pada setiap elemen di mana koleksi. Berita tinggi tinggi mengelakkan peredaran eksplisit.

<code class="language-php">$users = User::where('active', false)->get();

$users->each->activate();</code>
Salin selepas log masuk
Mengapa menggunakan mesej tinggi -level?

each activate Kod mudah:

Kurangkan bilangan baris kod dan hapuskan kitaran yang tidak perlu.

Kod: kod lebih ekspresif dan lebih mudah difahami.

Risiko ralat yang lebih rendah:
    Dengan mengelakkan peredaran manual, anda boleh mengurangkan risiko kesilapan jenis atau kesilapan logik.
  • Contoh praktikal
  • <.> 1. Sapukan kaedah untuk setiap elemen koleksi
  • dengan mengandaikan anda mempunyai koleksi pesanan, dan anda ingin menandakan semua pesanan sebagai yang telah dihantar:
  • <.> 2. Gunakan cara menapis koleksi

Anda juga boleh menggunakan mesej tinggi untuk menapis koleksi. Sebagai contoh, penapisan pengguna yang telah mengesahkan e -mel:

<.> 3. Gunakan

untuk menyampaikan

Tukar koleksi ke hasil setiap kaedah aplikasi elemen. Sebagai contoh, dapatkan nama penuh semua pengguna:

<code class="language-php">$orders = Order::where('status', 'pending')->get();

$orders->each->markAsShipped();</code>
Salin selepas log masuk
Penggunaan lanjutan

<.> 1. Panggilan rantaian kaedah

Mesej -mesej tinggi boleh digunakan untuk melakukan operasi kompleks dengan kaedah pengumpulan lain. Sebagai contoh, untuk mengaktifkan semua pengguna yang tidak berjaya dan mengembalikan e -mel mereka:
<code class="language-php">$verifiedUsers = $users->filter->hasVerifiedEmail();</code>
Salin selepas log masuk

<.> 2. Gunakan hubungan dengan fasih bersama map

Anda juga boleh menggunakan mesej tinggi tinggi dengan fasih. Sebagai contoh, dengan mengandaikan bahawa setiap pengguna mempunyai beberapa jawatan, dan anda ingin menyiarkan siaran yang akan diterbitkan:

<code class="language-php">$fullNames = $users->map->getFullName();</code>
Salin selepas log masuk
had

Walaupun fungsi mesej peringkat tinggi berkuasa, mereka juga mempunyai beberapa batasan:

  • Ia hanya digunakan untuk kaedah yang tidak memerlukan parameter tambahan.
  • Ia digunakan terutamanya untuk operasi mudah. Untuk logik yang lebih kompleks, gelung eksplisit mungkin lebih sesuai.

Kesimpulan

Mesej lanjutan ialah ciri yang kurang diketahui tetapi sangat berguna dalam Laravel. Ia membolehkan anda menulis kod yang lebih ekspresif, ringkas dan boleh dibaca sambil mengurangkan risiko ralat. Sama ada anda bekerja dengan koleksi, perhubungan Fasih atau objek lain, mesej peringkat tinggi boleh memudahkan kod anda dengan sangat baik.

Jadi apabila anda menulis gelung seterusnya, tanya diri anda: "Bolehkah saya menggunakan mesej tertib tinggi di sini?

Adakah anda sudah menggunakan mesej peringkat tinggi dalam projek anda? Sila kongsi pengalaman dan kes penggunaan anda dalam ulasan!

Jangan lupa kongsi artikel ini dengan rakan pembangun Laravel anda untuk memberitahu mereka tentang petua berguna ini. ?

Atas ialah kandungan terperinci Penggunaan mesej pesanan lebih tinggi untuk kod laraver yang lebih ekspresif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan