February 8th, 2011
The order that you create your routes in Zend Framework is important, with the last route defined in your code being matched first. This allows you to set up custom routes and if these aren’t matched Zend Framework helpfully falls back to the default route which is set up first. If you have a lot of routes though, set up in different places, it can get difficult to verify the order of your routes.
Just use this snippet of code in your controller to return a list of route names set up in your ZF application in the order they are matched via the routing system (i.e. the route at number 1 is matched first, then route 2, etc).
// Output list of routes, in the order they are matched
echo '<ol>';
$routes = array_reverse($this->getFrontController()->getRouter()->getRoutes());
foreach ($routes as $name => $route) {
echo " <li>$name</li>\n";
}
echo '</ol>';
Find out more about the ZF Router at the ZF manual.
Posted in PHP, Quick tips, Zend Framework | Comments Off
August 5th, 2010
The good old Zend Framework manual pages do suffer from being somewhat lengthy. I’ve thought they could do with an index to make navigation easier on those oh-so-long pages. So I wrote a quick JavaScript bookmarklet to do just that.
Read the rest of this entry »
Posted in JavaScript, Zend Framework | 2 Comments »
July 15th, 2010
Zend Framework Controller plugins are a powerful way to inject logic into your controller system at various points, such as before and after an action dispatch. Plugins are run in the order they are added, though it is possible to change the order by defining a custom stack index. ZF internal plugins such as Zend_Controller_Plugin_ErrorHandler, which displays a nice Error 404 page, has a stack index of 100 to ensure it runs near the end of any plugin cycle. However, it’s not so obvious from the ZF manual how to set a custom stack index.
Read the rest of this entry »
Posted in Quick tips, Zend Framework | 4 Comments »
June 20th, 2010
Following on from my post on Admin sub-modules I’ve refactored the code into a more generic sub-modules system. And fixed some bugs!
Its main features are:
- Organise modules into sub-folders where you need to support a complex collection of controllers, views, models, etc
- Supports URLs in the format: /sub-module/module/controller/action
- Supports ID route: /sub-module/module/controller/action/id
- Registers controller folder to support above URLs
- Autoloads module resources (using Zend_Application_Module_Autoloader) in the format: submodulenameModulename_Resource (i.e. AdminUser_Form_Registration)
This supports URL routes such as:
www.domain.com/admin/user/ ->
application/admin-modules/user/controllers/IndexController.php
www.domain.com/cms/news ->
application/cms-modules/news/controllers/IndexController.php
It’s a bootstrap resource that can be enabled in your application.ini file as so:
; 'admin' key is the name of sub-module group = path to sub-modules directory
resources.subModules.admin.directory = APPLICATION_PATH "/admin-modules"
Posted in Zend Framework | 1 Comment »
June 8th, 2010
Modules in Zend Framework essentially allow us to organise a collection of controllers into sub-folders, giving URL to filesystem mapping such as:
domain.com/user/register -> app/modules/user/RegisterController.php
While useful when we need to expand our URLs (and organisation of code) beyond one set of controllers, there are a few things they don’t currently solve which I think would make them first-class citizens within ZF.
Read the rest of this entry »
Posted in Zend Framework | 5 Comments »