Permintaan Routing dan Mekanisme Pengiriman adalah bahagian penting dalam seni bina MVCnya. Ia dengan cekap menguruskan permintaan HTTP yang masuk dan mengarahkannya ke kaedah pengawal dan tindakan yang sesuai untuk diproses. Proses ini secara amnya mengikuti langkah -langkah ini:
modul/pengawal/tindakan
, walaupun ini sangat disesuaikan. Sebagai contoh, url seperti /index.php/home/user/login
akan dihuraikan untuk mengenal pasti home
sebagai modul, user
sebagai pengawal, dan laluan. Sekiranya laluan yang sepadan ditemui, sistem menggunakan konfigurasi laluan untuk menentukan pengawal sasaran dan tindakan. Ini membolehkan struktur URL yang fleksibel yang tidak semestinya mengikuti konvensyen lalai. Kaedah ini memproses permintaan, berinteraksi dengan model (jika perlu), dan menghasilkan tindak balas. ThinkPhp mengendalikan penyerahan respons dan menghantarnya kembali kepada pelanggan. peta kepada pengawal dan tindakan. Struktur biasanya mengikuti modul/pengawal/tindakan
.
/produk/123
kepada tindakan pengawal tertentu yang memaparkan butiran produk. /produk/: id
dan lulus ke kaedah tindakan. Pendekatan ini membolehkan untuk menentukan laluan untuk tindakan sumber yang sama (contohnya, indeks, menunjukkan, membuat, mengemas kini, memadam) dengan cara yang ringkas dan tenang. Ini membolehkan URL bersih dengan mengeluarkan index.php
dari laluan URL. Dalam fail ini, anda boleh menentukan peraturan menggunakan struktur array. Setiap peraturan terdiri daripada corak (corak URL untuk dipadankan) dan definisi laluan (pengawal sasaran dan tindakan). Berikut adalah contoh bagaimana untuk menentukan peraturan laluan tersuai:
<code class="php"> 'url_route' = & gt; [// ... peraturan lain ... '/produk/: id' = & gt; ['modul' = & gt; 'Rumah', 'pengawal' = & gt; 'Produk', 'tindakan' = & gt; 'terperinci', 'ext' = & gt; 'html'], '/artikel/: tahun/: bulan/: hari/: tajuk' = & gt; ['modul' = & gt; 'Rumah', 'pengawal' = & gt; 'Artikel', 'tindakan' = & gt; 'Lihat'],], </code>
Contoh ini mentakrifkan dua laluan:
/produk/123
Parameter ext
menentukan lanjutan fail yang dijangkakan (HTML dalam kes ini). Sebagai contoh, '/artikel/(\ d {4})/(\ d {2})/(\ d {2})/(.*)'
akan memadankan URL dengan tahun, bulan, hari, dan tajuk. Kumpulan yang ditangkap akan disediakan sebagai parameter laluan. Walaupun ThinkPHP mempunyai sistem penghalaan terbina dalam yang mantap, mengintegrasikan pustaka penghalaan pihak ketiga secara umumnya tidak disyorkan atau disokong secara langsung. Senibina ThinkPHP digabungkan dengan mekanisme penghalaan dalamannya. Percubaan untuk mengintegrasikan perpustakaan luaran mungkin memerlukan pengubahsuaian yang signifikan dan mungkin menjejaskan kestabilan dan pemeliharaan kerangka. Sistem terbina dalam menawarkan kuasa dan fleksibiliti yang mencukupi untuk kebanyakan aplikasi. Sekiranya anda mendapati diri anda memerlukan senario penghalaan yang lebih kompleks, pertimbangkan semula seni bina aplikasi anda sebelum menggunakan integrasi perpustakaan luaran.
Atas ialah kandungan terperinci Bagaimanakah ThinkPhp mengendalikan permintaan dan penghantaran permintaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!