Kini, semakin banyak tapak web mula menggunakan seni bina MVC dalam pembangunan, dan tujuan MVC adalah untuk memisahkan bahagian logik aplikasi daripada bahagian antara muka. Pembangun meletakkan logik dan model perniagaan dalam lapisan model, memaparkan logik dalam lapisan paparan, dan lapisan kawalan melaksanakan interaksi antara dua lapisan ini. Dalam banyak bahasa pengaturcaraan, pengawal memainkan peranan penting semasa mereka mengendalikan permintaan HTTP dan menghantar data ke templat untuk diberikan oleh penyemak imbas. Dalam artikel ini, kita akan belajar bagaimana untuk melompat ke pengawal lain menggunakan PHP.
Pertama, kita perlu melaksanakan lompatan melalui fungsi header() dalam PHP. Fungsi ini menghantar maklumat pengepala HTTP kepada klien dan boleh menyediakan ubah hala. Sebagai contoh, kita boleh mengubah hala pengguna ke pengawal menggunakan kod berikut:
header('Location: /controller/action');
di mana /controller/action ialah URL pengawal dan tindakan untuk melompat ke. Sila ambil perhatian bahawa tiada apa yang boleh dikeluarkan kepada penyemak imbas sebelum fungsi header() dilaksanakan, yang bermaksud tiada apa yang boleh dikeluarkan dalam skrip yang sama selepas fungsi header() dilaksanakan.
Walau bagaimanapun, dalam banyak kes, kami mungkin perlu melaksanakan beberapa kod sebelum melompat, contohnya, untuk merekodkan aktiviti pengguna atau menyimpan data dalam borang. Untuk melaksanakan kod ini sebelum melaksanakan lompatan, kita boleh menggunakan ciri Penimbalan Output dalam PHP. Ini boleh dilakukan dengan membuka penimbal melalui fungsi ob_start() dan menggunakan fungsi ob_get_clean() untuk mendapatkan kandungan penimbal dan mengosongkan penimbal. Sebagai contoh, kod berikut menyimpan semua output dalam penimbal dan kemudian melakukan beberapa operasi sebelum melompat:
ob_start(); // Put your code here header('Location: /controller/action'); ob_get_clean();
Dalam sesetengah kes, kita mungkin perlu menghantar beberapa parameter kepada pengawal lain. Ini boleh dicapai dengan menambahkan parameter rentetan pertanyaan pada URL. Sebagai contoh, kod berikut menghantar parameter bernama "id" kepada pengawal:
header('Location: /controller/action?id=' . $id);
Selepas lompatan, kita boleh menggunakan tatasusunan $_GET untuk mendapatkan nilai parameter ini:
$id = $_GET['id'];
Selain parameter rentetan pertanyaan, kami juga boleh menggunakan permintaan POST untuk menghantar data kepada pengawal lain. Kod berikut menghantar beberapa data kepada pengawal melalui permintaan POST:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, '/controller/action'); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_exec($ch);
di mana $data ialah tatasusunan data yang akan dihantar. Dalam pengawal sasaran, kita boleh menggunakan tatasusunan $_POST untuk mendapatkan nilai data ini:
$data = $_POST;
Ringkasnya, pengawal adalah bahagian penting MVC kerana mereka bertanggungjawab untuk menerima permintaan HTTP dan meletakkannya Data dihantar ke templat. Dalam PHP, kita boleh menggunakan fungsi header() untuk melompat ke pengawal lain dan menghantar data melalui parameter rentetan pertanyaan dan permintaan POST. Selain itu, kita perlu menggunakan penimbal keluaran apabila melaksanakan sebarang kod yang diperlukan sebelum melompat.
Atas ialah kandungan terperinci Bagaimana untuk melompat ke pengawal lain menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!