Rumah > Artikel > rangka kerja php > Penghalaan dalam rangka kerja Yii: melaksanakan pengindahan URL
Rangka kerja Yii ialah rangka kerja pembangunan aplikasi web berprestasi tinggi sumber terbuka Ia berdasarkan corak reka bentuk MVC dan boleh membantu pembangun membina aplikasi web berskala dengan cepat. Dalam rangka kerja Yii, penghalaan adalah konsep yang sangat penting. Peranan penghalaan adalah untuk memetakan URL yang diminta daripada klien kepada pengawal dan tindakan yang sepadan.
Dalam aplikasi web tradisional, URL biasanya merupakan rentetan aksara dengan parameter, seperti: http://www.example.com/index.php?id=1001&category=book. URL sedemikian menyukarkan pengguna untuk memahami secara intuitif halaman mana yang sedang mereka lawati, dan ia tidak cantik pada masa yang sama. Untuk memudahkan pengguna mengakses halaman, rangka kerja Yii menyediakan fungsi penghalaan yang boleh menukar URL kepada bentuk yang lebih ringkas dan mudah difahami.
Pertama, kita perlu mengkonfigurasi peraturan penghalaan dalam fail konfigurasi aplikasi. Rangka kerja Yii menyediakan tiga kaedah penghalaan yang berbeza: penghalaan peraturan, penghalaan dipertingkatkan dan penghalaan biasa. Di sini kita mengambil penghalaan peraturan sebagai contoh.
Penghalaan peraturan ialah kaedah penghalaan yang paling biasa digunakan, yang memetakan peraturan URL kepada pengawal dan tindakan tertentu. Berikut ialah contoh mudah:
return [ 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ 'post/<id:d+>' => 'post/view', 'posts' => 'post/index', ], ], ], ];
Dalam contoh di atas, kami memetakan URL /post/1001 ke siaran pengawal dan paparan tindakan, dengan 1001 ialah parameter yang dihantar secara dinamik. Dengan cara ini, pengguna boleh melihat catatan blog dengan ID 1001 dengan mengakses /post/1001. Selain itu, kami memetakan URL /siaran ke siaran pengawal dan indeks tindakan supaya pengguna boleh melihat senarai catatan blog dengan mengakses /siaran.
Selain peraturan tetap di atas, anda juga boleh menggunakan ungkapan biasa untuk memadankan URL. Contohnya:
return [ 'components' => [ 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ [ 'pattern' => '/post/<id:d+>', 'route' => 'post/view', 'suffix' => '.html', ], [ 'pattern' => '/<category:w+>', 'route' => 'post/index', 'suffix' => '.html', ], ], ], ], ];
Dalam contoh di atas, kami menggunakan dua ungkapan biasa untuk memadankan URL. Peraturan pertama memetakan /post/1001.html ke siaran pengawal dan paparan tindakan, dengan .html ialah akhiran dan 3493f3358a126a26f38915ea72d0923c Peraturan kedua memetakan /news.html atau /technology.html ke pos pengawal dan indeks tindakan, dengan 46973002c3cd4c80c69da80de8fbb82a ialah parameter yang diluluskan secara dinamik yang boleh sepadan dengan mana-mana huruf.
Selain penghalaan peraturan, rangka kerja Yii juga menyediakan penghalaan yang dipertingkatkan dan penghalaan biasa. Penghalaan dipertingkat adalah serupa dengan penghalaan peraturan dan boleh memetakan URL kepada pengawal dan tindakan tertentu. Perbezaannya ialah penghalaan yang dipertingkatkan menyokong resolusi automatik bagi nama modul, pengawal dan tindakan, dan boleh mengisi parameter secara automatik ke dalam objek model tertentu.
Penghalaan biasa ialah kaedah penghalaan yang lebih berkuasa yang boleh menggunakan ungkapan biasa untuk memadankan mana-mana URL. Penghalaan biasa mempunyai sedikit senario penggunaan dan biasanya digunakan untuk memadankan format URL khas.
Secara amnya, menggunakan penghalaan dalam rangka kerja Yii boleh mencantikkan URL dengan mudah dan memudahkan pengguna mengakses halaman. Pada masa yang sama, penghalaan juga merupakan bahagian penting dalam membina aplikasi MVC, dan kaedah penghalaan yang berbeza boleh memenuhi keperluan yang berbeza. Apabila membangunkan aplikasi web, kita perlu memilih kaedah penghalaan yang paling sesuai mengikut situasi tertentu untuk meningkatkan prestasi aplikasi dan pengalaman pengguna.
Atas ialah kandungan terperinci Penghalaan dalam rangka kerja Yii: melaksanakan pengindahan URL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!