Horde/Routes 0.4 Released
-
Horde/Routes 0.4 has been released. Horde/Routes is a URL mapping system for PHP 5 that provides classes for mapping URLs to the controllers and actions of an MVC system. Learn more at the project website or this presentation.
This version includes a new utility class,
Horde_Routes_Printer
, a debugging aid that can print out a summary of all routes that are connected to a mapper. It is available through a convenience method fromHorde_Routes_Utils
:$map = new Horde_Routes_Mapper(); $map->connect('post', ':title', array('controller'=>'posts','action'=>'show')); $map->connect('feeds', 'feeds/:format', array('controller'=>'feeds')); $map->connect(':controller/:action/:id'); $map->utils->printRoutes();
This will cause the following information to be printed to
php://output
:post /:title {:controller=>"posts", :action=>"show"} feeds /feeds/:format {:controller=>"feeds", :action=>"index"} /:controller/:action/:id
You’ll see above that the name of the route (if any) is shown, the route path, and the default values for the route. If a route only matches for a certain HTTP method, this will be shown as well. It’s handy when you have a large number of routes, or resource routes.
If you’d like the debug output to go somewhere else, pass a stream resource as the first argument to
printRoutes()
. The output is formatted similarly to therake routes
command from Rails. Although the notation is a little unusual for PHP, it’s compact and readable. SeeHorde_Routes_Printer
if you’d like to modify the format.Since it’s release, we’re received a good amount of positive feedback on Horde/Routes. It is now being shared by the upcoming Horde 4 (Rampage), the Seagull framework, and a few others. Check out the integration guide for how to add it to your project.