Zend Framework – Working with Custom Routes
Routes adalah penghubung antara request dan action. Ketika user me-request halaman aplikasi melalui URL, maka FrontController menampung request, dan memutuskan Controller dan action mana yang akan dipanggil berdasarkan URLpattern. Proses request routing adalah kunci dari eksekusi flow aplikasi.
Proses routing rinciannya sebagai berikut :
1. Ketika request datang, maka .htaccess akan me-rewrite ke standard format dan melewatkan ke index.php
2. FrontController memeriksa request berdasarkan URL, dan mencocokkan dengan default maupun custom routes.
3. Jika cocok, maka FrontController mentransfer ke controller dan action yang sesuai. Jika benar, maka view dan layout akan dirender ke user jika diperlukan.
4. Jika tidak cocok, maka exception dan ErrorController akan dipanggil dan errorAction akan merender error message ke user.
Secara default, Zend Framework mempunyai routing standard, yaitu :module/:controller/:action/* ( params /paramsvalue) . Nah, bagaimana ketika kita membutuhkan routing yang berbeda ? Yang kita perlukan adalah FrontController untuk mengatur routing tersebut, dan kita bisa tambahkan itu di default Bootstrap aplikasi Zend Framework kita, seperti berikut :
class Default_Bootstrap extends Zend_Application_Module_Bootstrap { protected function _initModule() { //instance before route from controllerfront $this->frontController = Zend_Controller_Front::getInstance(); $this->router = $this->frontController->getRouter(); } protected function _initRoutes() { //routingnya menjadi lang/module/controller/action $this->router->addRoute('langaddmodaction', new Zend_Controller_Router_Route('/:lang/:module/:controller/:action/*', array('lang'=>'id', 'module'=>'default', 'controller'=>'index', 'action'=>'index') )); } protected function _initApp() { $request = new Zend_Controller_Request_Http(); $this->router->route($request); } }
Referensi :
Zend Frawework, A Beginner’s Guide, Vikram Viswani
http://framework.zend.com/manual/en/zend.controller.router.html
1 comment