/** * Connects the default, built-in routes, including prefix and plugin routes. The following routes are created * in the order below: * * For each of the Routing.prefixes the following routes are created. Routes containing `:plugin` are only * created when your application has one or more plugins. * * - `/:prefix/:plugin` a plugin shortcut route. * - `/:prefix/:plugin/:action/*` a plugin shortcut route. * - `/:prefix/:plugin/:controller` * - `/:prefix/:plugin/:controller/:action/*` * - `/:prefix/:controller` * - `/:prefix/:controller/:action/*` * * If plugins are found in your application the following routes are created: * * - `/:plugin` a plugin shortcut route. * - `/:plugin/:action/*` a plugin shortcut route. * - `/:plugin/:controller` * - `/:plugin/:controller/:action/*` * * And lastly the following catch-all routes are connected. * * - `/:controller' * - `/:controller/:action/*' * * You can disable the connection of default routes with Router::defaults(). * * @return void * @access private */ private static function __connectDefaultRoutes() { if ($plugins = App::objects('plugin')) { App::import('Core', 'route/PluginShortRoute'); foreach ($plugins as $key => $value) { $plugins[$key] = Inflector::underscore($value); } $pluginPattern = implode('|', $plugins); $match = array('plugin' => $pluginPattern); $shortParams = array('routeClass' => 'PluginShortRoute', 'plugin' => $pluginPattern); foreach (self::$_prefixes as $prefix) { $params = array('prefix' => $prefix, $prefix => true); $indexParams = $params + array('action' => 'index'); self::connect("/{$prefix}/:plugin", $indexParams, $shortParams); self::connect("/{$prefix}/:plugin/:controller", $indexParams, $match); self::connect("/{$prefix}/:plugin/:controller/:action/*", $params, $match); } self::connect('/:plugin', array('action' => 'index'), $shortParams); self::connect('/:plugin/:controller', array('action' => 'index'), $match); self::connect('/:plugin/:controller/:action/*', array(), $match); } foreach (self::$_prefixes as $prefix) { $params = array('prefix' => $prefix, $prefix => true); $indexParams = $params + array('action' => 'index'); self::connect("/{$prefix}/:controller", $indexParams); self::connect("/{$prefix}/:controller/:action/*", $params); } self::connect('/:controller', array('action' => 'index')); self::connect('/:controller/:action/*'); if (self::$_namedConfig['rules'] === false) { self::connectNamed(true); } self::$_defaultsMapped = true; }