Router หัวใจของเฟรมเวิร์ค
ตัวอย่างของรูปแบบของ URL ที่ยอมรับ
- index.php/module/model/pathto/file/method
- module/model/file/method
- index/mvc/file
- module/cat/id
- module/cat
- module/alias
- module/cat/alias
- module.php
- alias.html
ความหมายของตัวแปรแต่ละตัว
- module จะประกอบด้วยภาษาอังกฤษตัวพิมพ์เล็กเท่านั้น เป็นชื่อโมดูล เช่น modules/index/ ชื่อโมดูลคือ index
- file หมายถึงหน้าเว็บที่เรียก ภาษาอังกฤษตัวพิมพ์เล็ก ตัวเลข และ _ เท่านั้น และหน้าเพจนี้ต้องมีนามสกุลเป็น .php เช่น file เป็น index จะหมายถึงเรียกไปยังไฟล์ index.php
- pathto หมายถึงชื่อไดเร็คทอรี่ที่เก็บไฟล์ (file) อยู่ folder จะประกอบด้วยภาษาอังกฤษตัวพิมพ์เล็ก ตัวเลข _ และ / เท่านั้น ค่านี้จะใช้ร่วมกับ file
- mvc จะหมายถึง model controller หรือ view อย่างใดอย่างหนึ่ง
- method จะหมายถึงชื่อเมธอดปลายทางที่เรียกใช้งาน ถ้าไม่มีการระบุ method มา Router จะกำหนดให้เรียกไปยังเมธอด index (method จะประกอบด้วย ภาษาอังกฤษตัวพิมพ์เล็ก ตัวเลข และ _ เท่านั้น)
- cat และ id หมายถึงหมวดหมู่ และ ไอดีของหน้า ซึ่งทั้ง cat และ id จะต้องเป็นตัวเลขเท่านั้น
- alias ค่านี้จะยอมรับค่าการส่งค่าที่เป็นภาษาไทย เช่น URL เป็น หน้าหลัก.html เมื่อผ่าน Router แล้วจะได้ว่า document=หน้าหลัก
ตัวอย่าง URL เส้นทางการเรียก (Controller หรือ View) และ พารามิเตอร์
URL | Class::method() | Request |
---|---|---|
/css/view/index.php | Css\Index\View::index() | |
/index/model/updateprofile.php | Index\Updateprofile\Model::index() | |
/xxxx.php/css/view/index | Css\Index\View::index() | |
/index.php/document/model/settings/save | Document\Settings\Model::save() | |
/index.php/document/model/admin/settings/save | Document\Admin\Settings\Model::save() | |
/module/1/2.html | Index\Index\Controller::index() | module => module cat => 1 id => 2 |
/module/1.html | Index\Index\Controller::index() | module => module cat => 1 |
/module/ทดสอบ.html | Index\Index\Controller::index() | module => module alias => ทดสอบ |
/module.html | Index\Index\Controller::index() | module => module |
/ทดสอบ.html | Index\Index\Controller::index() | alias => ทดสอบ |
/docs/1/ทดสอบ.html | Index\Index\Controller::index() | alias => ทดสอบ module => docs cat => 1 |
/index.php | Index\Index\Controller::index() | |
/admin_index.php | Index\Index\Controller::index() | module => admin_index |
- ในกรณีที่ไม่สามารถระบุคลาสปลายทางจาก URL ได้ จะเป็นการเรียกไปยัง คอนโทรเลอร์หลักแทน คือ Index\Index\Controller
- ในกรณีที่ไม่สามารถระบุเมธอดปลายทางจาก URL ได้ จะเป็นการเรียกไปยังเมธอด index()
- Request คือพารามิเตอร์ที่อ่านได้จาก URL ซึ่งจะมีการส่งเป็นพารามิเตอร์ให้กับ เมธอด ที่เรียกใช้