Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5
Code

Memahami Asas Laravel Middleware

by
Difficulty:BeginnerLength:MediumLanguages:

Malay (Melayu) translation by Robi'ah Ar Ro'yi (you can also view the original English article)

Dalam artikel ini, kita akan memahami lebih lanjut mengenai rangka kerja Laravel untuk memahami konsep middleware. Separuh daripada bahagian pertama artikel bermula dengan pengenalan middleware dan untuk apa sebenarnya penggunaan middleware. 

Ketika kami meneruskan, kami akan membincangkan cara membuat middleware khusus dalam aplikasi Laravel. Sebaik sahaja anda telah mencipta middleware tersuai, kami akan meneroka pilihan yang tersedia untuk mendaftar dengan Laravel supaya ia dapat dipanggil semasa proses permintaan.

Saya harap anda menganggap diri anda cukup akrab dengan konsep asas Laravel dan arahan Artisan melalui baris arahan untuk menghasilkan kod perancah. Sudah tentu, memasang aplikasi Laravel terkini membolehkan anda menjalankan contoh-contoh yang diberikan dalam artikel ini secara langsung.

Apakah Middleware di Laravel?

Kita boleh menganggap bahawa middleware sebagai mekanisme yang membolehkan anda menyambung ke aliran pemprosesan permintaan biasa dari aplikasi Laravel. Pemprosesan laluan Laravel tertentu melepasi peringkat tertentu melalui pemprosesan permintaan, dan middleware adalah salah satu lapisan yang akan diluluskan daripada aplikasi.

Jadi apa sebenarnya titik cangkuk untuk masuk ke aliran pemprosesan permintaan Laravel? Fikirkan sesuatu yang memerlukan pelaksanaan pada peringkat awal perancangan permohonan.  Sebagai contoh, adalah perlu untuk mengesahkan pengguna pada peringkat awal untuk memutuskan sama ada mereka dibenarkan mengakses laluan tersebut.

Sesetengah perkara yang saya boleh fikirkan tentang anda boleh melalui middleware ialah:

  • Permintaan Masuk
  • Redirect User
  • Tukar / Padam parameter masuk
  • Manipulate respon yang dihasilkan oleh aplikasi Laravel
  • dan banyak lagi

Malah, aplikasi Laravel secara lalai telah menghantar beberapa bahagian penting middleware dengan yang di atas. Contohnya, terdapat middleware yang menyemak sama ada tapak itu dalam mod penyelenggaraan.  Sebaliknya, terdapat middleware untuk menghapuskan parameter pertanyaan input. Seperti yang saya nyatakan sebelum ini, pengesahan pengguna juga dicapai oleh middleware itu sendiri.

Saya harap penerangan sejauh ini dapat membantu anda merasa lebih yakin tentang middleware istilah. Jika anda masih keliru, jangan risau kerana Kami akan menjadi sebahagian daripada middleware adat dari sesi seterusnya dan sebagainya yang akan membantu anda memahami dengan tepat bagaimana middleware boleh digunakan di dunia nyata.

Cara Membuat Middleware Custom

Dalam sesi ini, Kami akan mewujudkan middleware tersuai. Tetapi apa sebenarnya yang akan kita capai dari middleware adat?

Baru-baru ini, saya dapati keperluan khusus pelanggan saya bahawa jika pengguna mengakses tapak dari mana-mana peranti mudah alih, mereka harus dialihkan ke URL sub-domain yang sama dengan semua parameter querystrain utuh. Saya percaya ini adalah kes penggunaan yang sempurna untuk menunjukkan bagaimana middleware Laravel boleh digunakan dalam senario ini.

Sebab mengapa kami ingin menggunakan middleware dalam kes ini adalah keperluan untuk menyambung ke aliran permintaan permohonan. Dalam pertengahan perantara tersuai, kami akan menyemak pelayar web pengguna, dan pengguna diarahkan ke URL mudah alih berkaitan jika mereka menggunakan peranti mudah alih.

Selepas membincangkan semua teori ini, mari kita membincangkan proses pembangunan sebenar, dan adakah cara terbaik untuk memahami konsep baru?

Sebagai pemaju Laravel, kemudahan seperti Artisan akhirnya akan menggunakan anda kebanyakan masa untuk membuat kod template asas jika anda ingin membuat fungsi tersuai. Mari kita gunakan Artisan untuk mencipta kod templat asas untuk middleware tersuai.

Pergi ke baris arahan dan pergi ke direktori dokumen projek anda. Jalankan arahan berikut untuk membuat template Middlware MobileRedirect tersuai.

Dan perintah itu akan membuat fail app/Http/Middleware/MobileRedirect.php dengan kod berikut.

Kebanyakannya, anda akan melihat pelaksanaan kaedah handle yang bertindak sebagai tulang belakang dari middleware, dan logik utama middleware yang anda ingin perlaksanaan hendaklah berada di sini.

Izinkan saya mengambil kesempatan ini untuk memperkenalkan jenis middleware yang menampilkan Laravel. Khususnya, terdapat dua jenis - sebelum-middleware dan selepas-middleware.

Seperti namanya, sebelum-middleware adalah sesuatu yang berjalan sebelum permintaan itu sebenarnya ditangani dan sebelum tindak balas dibina.Sebaliknya, selepas middleware berjalan selepas permintaan ditangani oleh aplikasi dan respons telah dibina pada masa ini.

Dalam kes ini, kita perlu mengalihkan pengguna sebelum permintaan ditangani, dan oleh itu akan dibangunkan sebagai middleware sebelum ini.

Teruskan dan ubah suai app/Http/Middleware/MobileRedirect.php dengan kandungan berikut.

Untuk kesederhanaan, kami hanya memeriksa kewujudan parameter querystring dari mobile , dan jika ditetapkan kepada TRUE , pengguna akan dialihkan ke URL tapak mudah alih yang berkaitan. Sudah tentu, anda ingin menggunakan perpustakaan pengesan penyemak imbas pengguna jika anda ingin mengesannya dalam masa nyata.

Juga, anda ingin menggantikan laluan mobile-site-url-goes-here dengan laluan atau URL yang betul kerana itu hanya tempat untuk tujuan demonstrasi.

Berikutan logik khusus kami, terdapat panggilan untuk $next($request) yang membolehkan permintaan diproses lebih lanjut dalam rantaian aplikasi. Perkara penting yang perlu diperhatikan dalam kes kami ialah kami meletakkan logik pengesanan mudah alih sebelum $next($request) , berkesan untuk membuatnya sebelum-middleware.

Dan dengan itu, middleware adat kami hampir siap untuk diuji. Pada masa ini, Laravel tidak mungkin mengetahui tentang middleware kami.  Untuk membuatnya berlaku, anda perlu mendaftar middleware anda dengan aplikasi Laravel, dan itulah topik bahagian seterusnya kami.

Sebelum pergi ke bahagian seterusnya, saya ingin menunjukkan bagaimana rupa middleware selepas itu, sekiranya ada sesiapa yang ingin tahu mengenainya.

Seperti yang anda sudah tahu, logik middleware adat dilaksanakan selepas permintaan diproses oleh aplikasi Laravel. Pada masa ini, anda juga mempunyai akses kepada objek $response , yang membolehkan anda memanipulasi aspek tertentu jika anda mahu.

Oleh itu, ia adalah pelan untuk middleware selepas.

Dalam tindakan dengan Custom Middleware

Bahagian ini menerangkan proses pendaftaran middleware dengan aplikasi Laravel supaya ia dapat dipanggil semasa aliran pemprosesan permintaan.

app/Http/Kernel.php dan buka app/Http/Kernel.php dan cari coretan berikut.

Seperti yang anda lihat, $middleware mengendalikan pelbagai middleware yang datang dengan pemasangan Laravel secara lalai. Middleware yang disenaraikan di sini akan dilaksanakan pada setiap permintaan Laravel, dan oleh itu, ini merupakan calon yang sesuai untuk meletakkan middleware adat kami sendiri.

Teruskan dan masukkan middleware tersuai seperti yang ditunjukkan dalam coretan berikut.

Sekarang, cuba akses salah satu laluan Laravel anda dengan querystring mobile=1 , dan itu harus mencetuskan kod middleware yang telah kami buat!

Jadi itulah bagaimana anda mendaftarkan middleware yang harus dijalankan pada setiap permintaan. Walau bagaimanapun, kadang-kadang anda mahu menjalankan middleware anda hanya untuk laluan tertentu. Mari periksa bagaimana untuk sampai ke sana menggunakan $routeMiddleware .

Dalam konteks contoh semasa, mari kita asumsikan bahawa pengguna akan dialihkan semula ke tapak mudah alih jika mereka mengakses laluan tertentu di laman web anda. Dalam senario ini, anda tidak mahu memasukkan middleware anda pada senarai $middleware .

Sebaliknya, anda ingin melampirkan middleware terus ke definisi laluan, seperti ditunjukkan di bawah.

Sebenarnya, kita boleh pergi lebih jauh dan membuat alias untuk middleware kita sendiri supaya anda tidak perlu menggunakan nama kelas sebaris.

Buka app/Http/Kernel.php dan cari $routeMiddleware yang mengendalikan pemetaan alias ke middleware. Mari masukkan entri kami ke dalam senarai itu, seperti ditunjukkan dalam coretan berikut.

Dan definisi laluan yang disemak kelihatan seperti ini.

Dan itulah kisah cara mendaftar middleware dengan aplikasi Laravel. Itu cukup mudah, bukan?

Malah, Kami telah sampai ke penghujung artikel ini, dan saya berharap anda benar-benar menikmatinya.

Kesimpulannya

Meneroka konsep seni bina dalam mana-mana kerangka sentiasa menarik, dan itulah yang kita lakukan dalam artikel ini kerana Kami meneroka middleware dalam kerangka Laravel.

Bermula dengan pengenalan dasar untuk middleware, kami mengalihkan perhatian kami kepada topik mewujudkan middleware tersuai dalam aplikasi Laravel. Dan itu bahagian kedua artikel yang membincangkan cara mendaftarkan middleware khusus anda dengan Laravel, dan itu juga merupakan peluang untuk meneroka cara yang berbeza yang boleh anda sertakan middleware anda sendiri.

Mudah-mudahan perjalanan itu bermanfaat dan artikel ini telah membantu anda memperkaya pengetahuan anda. Juga, jika anda mahu saya mendapatkan topik tertentu dalam artikel yang akan datang, anda boleh memberitahu saya tentangnya.

Itu untuk hari ini, dan jangan teragak-agak untuk menembak pertanyaan anda, jika ada, gunakan medan komen di bawah!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.