Rumah > rangka kerja php > ThinkPHP > teks badan

apakah penghalaan thinkphp

青灯夜游
Lepaskan: 2021-12-27 11:49:48
asal
4584 orang telah melayarinya

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.

apakah penghalaan thinkphp

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:

1.

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.

2. Mengapa menggunakan penghalaan?

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?

Penggunaan Laluan

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


adakah parameter pertama dan kedua mewakili? Parameter kedua mewakili modul/pengawal/kaedah dalam URL biasa, dan parameter pertama mewakili nama yang anda mahu gunakan untuk menggantikan modul/pengawal/ kaedah berikut.

Dengan kata lain, saya pada asalnya menggunakan http://localhost/xx/public/index.php/xx/test/xx untuk mengakses kaedah pengawal saya, tetapi sekarang saya hanya memerlukan http://localhost/ xx /public/index.php/xx boleh mengakses kaedah pengawal saya.

Lihat kesannya:


Berjaya menggunakan akses penghalaan, kemudian, seterusnya mari kita lihat dengan lebih dekat penggubalan peraturan ini (seperti sebagai get dan Perbezaan antara akses pos)

Saya kini menukar kaedah get kepada kaedah siaran dan kemudian saya menggunakan kaedah get untuk mengakses dan melihat apa yang berlaku:




Anda boleh lihat kami menggunakan get yang tidak boleh diakses, hanya pos boleh diakses, bagaimana mengenainya, rasa Adakah laluan tempat yang menyeronokkan?

Lebih mendalam, kita juga boleh mentakrifkan laluan seperti ini:


Parameter ketiga mewakili kaedah akses, seperti yang saya takrifkan di sini Ini borang boleh diakses untuk kedua-dua mendapatkan dan operasi pos Parameter terakhir mewakili sama ada untuk menyemak protokol https Jika ia palsu, https tidak akan diperiksa mengaksesnya. Dengan cara ini, kami boleh memastikan keselamatan antara muka kami. Mengenai kesannya, saya tidak akan menunjukkannya.

Lagi

Apakah lagi yang istimewa tentang penghalaan? Penghalaan malah boleh menggabungkan parameter yang diluluskan oleh operasi get ke dalam url operasi get asal kami sepatutnya kelihatan seperti ini: url? id=1. Selepas penghalaan, kita boleh mentakrifkannya sebagai url/1 Dengan cara ini, malah parameter id disembunyikan. Bagi prosesnya, hanya pergi ke manual pembangunan dan carinya.

Semestinya, routing juga mempunyai beberapa fungsi tambahan yang lain, seperti fungsi penutupan dan sebagainya, saya tidak akan memperkenalkannya satu per satu, kerana fungsi tambahan ini tidak begitu penting semasa proses pembangunan digunakan. Jika anda berminat, anda boleh pergi ke manual pembangunan yang lengkap untuk membacanya.

Ini menyimpulkan pengenalan kepada penghalaan dan faedah menggunakan penghalaan.

[Cadangan tutorial berkaitan:

rangka kerja thinkphp]

Atas ialah kandungan terperinci apakah penghalaan thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan