Created
December 13, 2014 11:46
-
-
Save TamiasSibiricus/2a01d4752d257bf58108 to your computer and use it in GitHub Desktop.
Routes confict
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* App Routes configuration App/config/routes.php | |
* | |
* In this file, you set up routes to your controllers and their actions. | |
* Routes are very important mechanism that allows you to freely connect | |
* different URLs to chosen controllers and their actions (functions). | |
* | |
* CakePHP(tm) : Rapid Development Framework (http://cakephp.org) | |
* Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | |
* | |
* Licensed under The MIT License | |
* For full copyright and license information, please see the LICENSE.txt | |
* Redistributions of files must retain the above copyright notice. | |
* | |
* @copyright Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org) | |
* @link http://cakephp.org CakePHP(tm) Project | |
* @license http://www.opensource.org/licenses/mit-license.php MIT License | |
*/ | |
use Cake\Core\Plugin; | |
use Cake\Routing\Router; | |
/** | |
* The default class to use for all routes | |
* | |
* The following route classes are supplied with CakePHP and are appropriate | |
* to set as the default: | |
* | |
* - Route | |
* - InflectedRoute | |
* - DashedRoute | |
* | |
* If no call is made to `Router::defaultRouteClass`, the class used is | |
* `Route` (`Cake\Routing\Route\Route`) | |
* | |
* Note that `Route` does not do any inflections on URLs which will result in | |
* inconsistently cased URLs when used with `:plugin`, `:controller` and | |
* `:action` markers. | |
* | |
*/ | |
Router::defaultRouteClass('InflectedRoute'); | |
Router::scope('/', function ($routes) { | |
/** | |
* Here, we are connecting '/' (base path) to a controller called 'Pages', | |
* its action called 'display', and we pass a param to select the view file | |
* to use (in this case, src/Template/Pages/home.ctp)... | |
*/ | |
$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']); | |
/** | |
* ...and connect the rest of 'Pages' controller's URLs. | |
*/ | |
$routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']); | |
/** | |
* Connect catchall routes for all controllers. | |
* | |
* Using the argument `InflectedRoute`, the `fallbacks` method is a shortcut for | |
* `$routes->connect('/:controller', ['action' => 'index'], ['routeClass' => 'InflectedRoute']);` | |
* `$routes->connect('/:controller/:action/*', [], ['routeClass' => 'InflectedRoute']);` | |
* | |
* Any route class can be used with this method, such as: | |
* - DashedRoute | |
* - InflectedRoute | |
* - Route | |
* - Or your own route class | |
* | |
* You can remove these routes once you've connected the | |
* routes you want in your application. | |
*/ | |
//This route will work after uncomment | |
//$routes->connect( | |
//':slug', | |
//['controller' => 'Posts', 'action' => 'view'], | |
//['routeClass' => 'SlugRoute'] | |
//); | |
$routes->fallbacks('InflectedRoute'); | |
//This route does not work after uncomment | |
//$routes->connect( | |
//':slug', | |
//['controller' => 'Posts', 'action' => 'view'], | |
//['routeClass' => 'SlugRoute'] | |
//); | |
}); | |
/** | |
* Load all plugin routes. See the Plugin documentation on | |
* how to customize the loading of plugin routes. | |
*/ | |
Plugin::routes(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// routes for plugin MyPlugin | |
This plugin route does not work if app fallbacks called | |
Router::connect( | |
':slug', | |
['plugin' => 'MyPlugin', 'controller' => 'Posts', 'action' => 'view'], | |
['routeClass' => 'MyPlugin.SlugRoute'] | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment