Skip to content

Instantly share code, notes, and snippets.

@subhanahmed047
Created June 14, 2016 15:57
Show Gist options
  • Save subhanahmed047/833b30ce8e1d552d3268d599a5f631c0 to your computer and use it in GitHub Desktop.
Save subhanahmed047/833b30ce8e1d552d3268d599a5f631c0 to your computer and use it in GitHub Desktop.
<?php
/**
* Routes configuration
*
* 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\RouteBuilder;
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('DashedRoute');
/*Router::prefix('admin', function ($routes) {
// All routes here wil be prefixed with `/admin`
// And have the prefix => admin route element added.
$routes->connect('/', ['controller' => 'Admin', 'action' => 'index']);
$routes->fallbacks('DashedRoute');
});*/
Router::prefix('admin', ['_namePrefix' => 'admin:'], function ($routes) {
$routes->connect('/', ['controller' => 'admin', 'action' => 'index'], ['_name' => 'dashboard']);
$routes->scope('/menus', ['controller'=> 'Menus', '_namePrefix'=>'menus:'], function (RouteBuilder $routes) {
$routes->connect('/', ['action' => 'index'], ['_name' => 'index']);
$routes->connect('/add', ['action' => 'add'], ['_name' => 'add']);
$routes->connect('/edit/:id', ['action'=>'edit'], ['pass'=>['id'], 'id'=>'[[:xdigit:]-]+', '_name'=>'edit']);
});
$routes->scope('/products', ['controller'=> 'Products', '_namePrefix'=>'products:'], function (RouteBuilder $routes) {
$routes->connect('/', ['action' => 'index'], ['_name' => 'index']);
$routes->connect('/add', ['action' => 'add'], ['_name' => 'add']);
$routes->connect('/edit/:id', ['action'=>'edit'], ['pass'=>['id'], 'id'=>'[[:xdigit:]-]+', '_name'=>'edit']);
});
$routes->scope('/pages', ['controller'=> 'Pages', '_namePrefix'=>'pages:'], function (RouteBuilder $routes) {
$routes->connect('/', ['action' => 'index'], ['_name' => 'index']);
$routes->connect('/add', ['action' => 'add'], ['_name' => 'add']);
$routes->connect('/edit/:id', ['action'=>'edit'], ['pass'=>['id'], 'id'=>'[[:xdigit:]-]+', '_name'=>'edit']);
});
$routes->connect('/:controller', ['action' => 'index', 'plugin'=>false], ['routeClass' => 'DashedRoute']);
$routes->connect('/:controller/:action/*', ['plugin'=>false], ['routeClass' => 'DashedRoute']);
});
Router::scope('/', function (RouteBuilder $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' => 'index'], ['_name' => 'shop']);
/**
* ...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 `DashedRoute`, the `fallbacks` method is a shortcut for
* `$routes->connect('/:controller', ['action' => 'index'], ['routeClass' => 'DashedRoute']);`
* `$routes->connect('/:controller/:action/*', [], ['routeClass' => 'DashedRoute']);`
*
* 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.
*/
$routes->fallbacks('DashedRoute');
});
/**
* Load all plugin routes. See the Plugin documentation on
* how to customize the loading of plugin routes.
*/
Plugin::routes();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment