


Penggunaan lanjutan dan contoh demonstrasi perisian tengah rangka kerja Symfony
Penggunaan lanjutan dan contoh demonstrasi perisian tengah rangka kerja Symfony
Pengenalan:
Perisian tengah ialah salah satu konsep biasa dalam rangka kerja web moden Ia boleh melakukan pemprosesan berbilang lapisan permintaan dan respons HTTP, memproses permintaan atau melakukan pemprosesan pada respons. Pasca pemprosesan. Rangka kerja Symfony juga menyediakan fungsi perisian tengah yang kaya Artikel ini akan memperkenalkan penggunaan lanjutan perisian tengah rangka kerja Symfony dan menunjukkan fungsinya melalui contoh praktikal.
- Menggunakan middleware dalam Symfony
Symfony middleware dilaksanakan melalui Kernel dan EventSubscriber. Sebelum menggunakan perisian tengah, kita perlu memastikan bahawa rangka kerja Symfony telah dipasang dan projek telah dibuat.
1.1 Cipta perisian tengah tersuai
Kami boleh menentukan perisian tengah kami sendiri dengan mencipta kelas baharu. Mula-mula, cipta fail baharu SampleMiddleware.php dalam direktori src/Middleware.
<?php namespace AppMiddleware; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; class SampleMiddleware { public function handle(Request $request, Closure $next) { // 在中间件处理请求之前的逻辑 // ... // 调用下一个中间件或路由处理器 $response = $next($request); // 在中间件处理完响应之后的逻辑 // ... return $response; } }
Dalam contoh di atas, kami mentakrifkan kelas SampleMiddleware dan melaksanakan kaedah pemegang, yang menerima objek permintaan $request dan penutupan $next sebagai parameter. Dalam kaedah ini, kita boleh menulis logik sebelum perisian tengah memproses permintaan dan logik selepas memproses respons.
1.2 Daftar middleware
Seterusnya, kita perlu mendaftar middleware tersuai ke dalam rangka kerja Symfony. Buka fail config/services.yaml dan tambahkan konfigurasi berikut:
services: AppMiddlewareSampleMiddleware: tags: - { name: kernel.event_subscriber }
Melalui konfigurasi di atas, rangka kerja akan menemui dan mendaftarkan perisian tengah yang kami takrifkan secara automatik.
- Penggunaan lanjutan middleware
Rangka kerja Symfony menyediakan fungsi middleware yang kaya, termasuk penghalaan middleware, middleware global dan middleware pengendalian pengecualian, dsb. Berikut akan memperkenalkan cara menggunakan ketiga-tiga middleware ini masing-masing.
2.1 Perisian tengah penghalaan
Perisian tengah penghalaan boleh memproses laluan tertentu. Kami boleh menentukan laluan yang perlu digunakan middleware dalam fail route.yaml.
index: path: / controller: AppControllerDefaultController::indexAction middleware: ['AppMiddlewareSampleMiddleware']
Dalam contoh di atas, kami menggunakan perisian tengah SampleMiddleware pada permintaan penghalaan laluan indeks.
2.2 Global middleware
Global middleware boleh digunakan untuk semua laluan dan sangat berguna untuk logik yang perlu diproses untuk setiap permintaan. Kami boleh mengkonfigurasi perisian tengah global dalam fail config/packages/framework.yaml.
framework: middleware: ['AppMiddlewareSampleMiddleware']
Dengan konfigurasi di atas, perisian tengah SampleMiddleware akan digunakan pada semua permintaan penghalaan.
2.3 Perisian tengah pengendalian pengecualian
perisian tengah pengendalian pengecualian boleh digunakan untuk mengendalikan pengecualian yang dilemparkan dalam aplikasi. Kita boleh mencipta perisian tengah baharu untuk menangkap pengecualian dan mengendalikannya.
<?php namespace AppMiddleware; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpKernelExceptionHttpExceptionInterface; class ExceptionHandlerMiddleware { public function handle(Request $request, Closure $next) { try { $response = $next($request); } catch (HttpExceptionInterface $e) { $response = new Response($e->getMessage(), $e->getStatusCode()); } return $response; } }
Dalam contoh di atas, kami mencipta kelas ExceptionHandlerMiddleware dan menggunakan blok cuba-tangkap dalam kaedah pemegang untuk menangkap pengecualian HttpExceptionInterface yang dilemparkan. Jika pengecualian ditangkap, kami boleh menyesuaikan pengendalian mengikut keperluan.
- Contoh Demonstrasi
Seterusnya, kami akan menggunakan contoh untuk menunjukkan aplikasi middleware dalam rangka kerja Symfony.
Andaikan kami mempunyai keperluan Apabila pengguna mengakses laluan /admin, kami perlu menyemak sama ada pengguna telah log masuk. Jika anda tidak log masuk, lompat ke halaman log masuk Jika anda log masuk, teruskan melawat halaman pentadbir. Kita boleh mencapai keperluan ini dengan mencipta perisian tengah.
Pertama, buat perisian tengah AdminMiddleware.
<?php namespace AppMiddleware; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentHttpKernelExceptionAccessDeniedHttpException; class AdminMiddleware { public function handle(Request $request, Closure $next) { // 检查用户是否已登录 // ... // 如果未登录,则抛出AccessDeniedHttpException异常 if (!$user->isLoggedIn()) { throw new AccessDeniedHttpException('Access Denied'); } return $next($request); } }
Kemudian, gunakan perisian tengah AdminMiddleware pada laluan untuk laluan /admin.
admin: path: /admin controller: AppControllerAdminController::indexAction middleware: ['AppMiddlewareAdminMiddleware']
Dengan konfigurasi di atas, apabila pengguna mengakses laluan /admin, perisian tengah AdminMiddleware akan menyemak sama ada pengguna telah log masuk. Jika tidak log masuk, pengguna akan dialihkan ke halaman log masuk jika log masuk, teruskan ke halaman pentadbir.
Kesimpulan:
Artikel ini memperkenalkan penggunaan lanjutan dan contoh demonstrasi perisian tengah rangka kerja Symfony. Dengan menyesuaikan perisian tengah dan mengkonfigurasi perisian tengah, kami boleh memproses permintaan dan respons secara fleksibel untuk mencapai pelbagai keperluan fungsian. Ini memberikan kemudahan kepada kami untuk membangunkan aplikasi web yang cekap dan berskala.
Atas ialah kandungan terperinci Penggunaan lanjutan dan contoh demonstrasi perisian tengah rangka kerja Symfony. 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



Prinsip perisian tengah tomcat dilaksanakan berdasarkan spesifikasi Java Servlet dan Java EE. Sebagai bekas Servlet, Tomcat bertanggungjawab untuk memproses permintaan dan respons HTTP dan menyediakan persekitaran berjalan untuk aplikasi Web. Prinsip-prinsip perantara Tomcat terutamanya melibatkan: 1. Model kontena 2. Mekanisme pemprosesan Servlet 5. Pengurusan konfigurasi 7. Penyambung dan pengimbangan; teknologi; 9. Mod terbenam, dsb.

Cara menggunakan middleware untuk penukaran respons dalam Laravel Middleware ialah salah satu ciri yang sangat berkuasa dan praktikal dalam rangka kerja Laravel. Ia membolehkan kami memproses permintaan dan respons sebelum permintaan memasuki pengawal atau sebelum respons dihantar kepada klien. Dalam artikel ini, saya akan menunjukkan cara menggunakan perisian tengah untuk transformasi respons dalam Laravel. Sebelum memulakan, pastikan anda memasang Laravel dan projek baharu dibuat. Sekarang kita akan mengikuti langkah berikut: Cipta perisian tengah baru Terbuka

Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Pengenalan: Apabila membangunkan aplikasi web menggunakan rangka kerja Laravel, pecutan data adalah kunci untuk meningkatkan prestasi aplikasi. Middleware ialah ciri penting yang disediakan oleh Laravel yang mengendalikan permintaan sebelum ia mencapai pengawal atau sebelum respons dikembalikan. Artikel ini akan menumpukan pada cara menggunakan perisian tengah untuk mencapai pecutan data dalam Laravel dan memberikan contoh kod khusus. 1. Apakah middleware itu adalah mekanisme dalam rangka kerja Laravel

Cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel, contoh kod khusus diperlukan Pengenalan: Pengesahan borang ialah tugas yang sangat biasa dalam Laravel. Untuk memastikan kesahihan dan keselamatan data yang dimasukkan oleh pengguna, kami biasanya mengesahkan data yang diserahkan dalam borang. Laravel menyediakan fungsi pengesahan borang yang mudah dan juga menyokong penggunaan perisian tengah untuk mengendalikan pengesahan borang. Artikel ini akan memperkenalkan secara terperinci cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel dan memberikan contoh kod khusus.

Cara menggunakan perisian tengah untuk penjadualan tugas berjadual dalam Laravel Pengenalan: Laravel ialah rangka kerja sumber terbuka PHP yang popular yang menyediakan alatan yang mudah dan berkuasa untuk membangunkan aplikasi web. Salah satu ciri penting ialah penjadualan tugas bermasa, yang membolehkan pembangun menjalankan tugas tertentu pada selang waktu tertentu. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perisian tengah untuk melaksanakan penjadualan tugas berjadual Laravel dan menyediakan contoh kod khusus. Persediaan Persekitaran Sebelum bermula, kita perlu pastikan

Gunakan Symfony menggunakan Docker: Mulakan pembangunan dengan cepat Pengenalan: Dengan perkembangan pesat teknologi pengkomputeran awan dan kontena, Docker telah menjadi salah satu alat pilihan untuk pembangun untuk menggunakan dan mengurus aplikasi. Symfony, sebagai rangka kerja PHP yang popular, juga boleh digunakan melalui Docker, yang sangat memudahkan proses pembangunan dan penggunaan. Artikel ini akan memperkenalkan cara menggunakan Docker untuk menggunakan aplikasi Symfony dan memberikan contoh kod khusus. Langkah 1: Pasang Docke

Analisis hubungan antara fungsi komunikasi masa nyata PHP dan perisian tengah push mesej Dengan perkembangan Internet, kepentingan fungsi komunikasi masa nyata dalam aplikasi Web telah menjadi semakin menonjol. Komunikasi masa nyata membolehkan pengguna menghantar dan menerima mesej dalam masa nyata dalam aplikasi, dan boleh digunakan pada pelbagai senario, seperti sembang masa nyata, pemberitahuan segera, dsb. Dalam bidang PHP, terdapat banyak cara untuk melaksanakan fungsi komunikasi masa nyata, dan salah satu cara biasa ialah menggunakan perisian tengah tolak mesej. Artikel ini akan memperkenalkan hubungan antara fungsi komunikasi masa nyata PHP dan perisian tengah push mesej, dan cara menggunakan push mesej

Laravel ialah rangka kerja aplikasi web PHP yang popular yang menyediakan banyak cara cepat dan mudah untuk membina aplikasi web yang cekap, selamat dan berskala. Apabila membangunkan aplikasi Laravel, kita sering perlu mempertimbangkan isu pemulihan data, iaitu, cara memulihkan data dan memastikan operasi normal aplikasi sekiranya berlaku kehilangan atau kerosakan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perisian tengah Laravel untuk melaksanakan fungsi pemulihan data dan menyediakan contoh kod khusus. 1. Apa itu Lara?
