Dalam thinkphp, penghalaan merujuk kepada pemetaan yang diberikan kepada pengendali yang sepadan mengikut URL fungsinya adalah untuk memudahkan alamat akses URL dan membuat penghuraian yang betul mengikut jenis penghalaan yang ditentukan. Ringkasnya, penghalaan ialah penghuraian laluan Menurut laluan yang dikemukakan oleh klien, permintaan dihuraikan kepada modul atau pengawal atau kaedah yang sepadan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, versi thinkphp v5.1, komputer Dell G3.
Mari kita kaji mekanisme penghalaan ThinkPHP5.
Walaupun manual pembangunan lengkap TP5 bercakap tentang penghalaan dengan sangat jelas, kami masih mengkaji penghalaan TP5 dalam artikel ini Lagipun, membaca blog lebih selesa daripada membaca buku.
Pertama sekali, tanya tiga soalan:
Laluan merujuk kepada pemetaan yang diberikan kepada pengendali yang sepadan berdasarkan url.
Ringkasnya, ia adalah analisis laluan Menurut laluan yang dikemukakan oleh klien, permintaan dihuraikan kepada modul/pengawal/kaedah yang sepadan.
Dokumen rasmi mentakrifkannya seperti ini=>Fungsi penghalaan adalah untuk memudahkan alamat akses URL dan membuat penghuraian yang betul berdasarkan jenis penghalaan yang ditentukan.
Penjelasan manual: Apabila kami biasanya mengakses projek ThinkPHP kami mengikut tabiat kami, url biasa hendaklah ditulis seperti ini, (contoh tempatan) http:// localhost/project name/public/index.php/nama modul/nama pengawal/nama kaedah
Selepas memasukkan rentetan URL, anda akan berasa sangat terdesak, (berbisik) = > mahu menguji antara muka kecil yang membolehkan saya menaip senarai alamat yang begitu panjang dan saya tidak dapat mengingatinya...". Pada masa ini, kita boleh menggunakan penghalaan untuk memudahkan alamatnya dan mentakrifkan beberapa peraturan sambil memendekkan alamat.
Sesetengah orang mungkin berterus terang: Untuk memudahkan laluan. Sudah tentu, ini adalah salah satu sebab, tetapi sebabnya tidak begitu mudah.
Mempermudahkan laluan adalah sebab yang besar, kerana pada mulanya saya fikir laluan itu terlalu panjang dan berlari untuk menghidupkannya Tetapi kemudian dalam proses menggunakannya, saya dapati peranan Laluan Malah, ia tidak terhad kepada laluan yang dipermudahkan.
Kami boleh mendayakan penggunaan laluan secara paksa supaya semua orang hanya boleh masuk melalui laluan yang saya tetapkan. Ini mempunyai kelebihan iaitu anda boleh menulis beberapa pengawal yang anda tidak mahu pengguna untuk mengakses skrip, jika anda mendayakan penghalaan penuh untuk kegunaan paksa, pengguna tidak akan dapat mengakses skrip ini Jika tidak, jika pengguna mengakses skrip ini, dan skrip kadangkala mengubah suai pangkalan data, ia akan menjadi lebih berbahaya.
Selain itu, kita boleh menentukan sama ada entri dari laluan ini adalah operasi dapatkan atau operasi pos, supaya tiada situasi seperti sebelum ini, anda juga boleh get from get Ia boleh diakses, dan pos juga boleh diakses, yang sangat mengelirukan, sesetengah orang akan mengatakan bahawa ia bukan masalah besar jika kedua-dua get dan pos boleh diakses untuk membezakan antara kaedah ini untuk menjelmakan idea Restful API daripada.
Begitu juga, saya tidak akan bercakap tentang peraturan http dan https.
Pada ketika ini, adakah anda fikir penghalaan agak ajaib?
Sebelum menggunakannya, mari kita fahami maklumat konfigurasi dahulu Ia masih projek fork saya. buka fail konfigurasi:
Ada dua perkara yang perlu diberi perhatian, pertama di dalam kotak merah pertama Secara lalai, tp menghidupkan mod routing untuk kita Dalam kotak merah kedua, tp mematikan penggunaan routing secara lalai Apakah maksudnya? Malah sekarang saya boleh mengakses dengan jayanya melalui mod alamat biasa kami, dan akses melalui penghalaan juga boleh berjaya.
Apabila saya biasanya membuat projek, saya akan menukar ini kepada benar atas sebab keselamatan, jadi mari kita lihat kesannya
Belum lagi Apabila menghidupkan penghalaan paksa:
Akses mengikut alamat biasa boleh berjaya, jadi mari hidupkan penghalaan paksa sekarang:
Alamat yang sama melaporkan ralat, dan membuang laluan tidak ditemui ralat, kerana kami tidak mentakrifkan laluan ini dalam fail penghalaan, jadi ia melemparkan ralat, Ia menunjukkan bahawa kita kini terpaksa menggunakan penghalaan.
Jadi mari kita takrifkannya sekarang, bermula dengan yang paling mudah:
Cari fail laluan
rangka kerja thinkphp]
Atas ialah kandungan terperinci apakah penghalaan thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!