PHP code example of eberfreitas / cakephp-power-router

1. Go to this page and download the library: Download eberfreitas/cakephp-power-router library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

eberfreitas / cakephp-power-router example snippets


CakePlugin::load('PowerRouter');

App::uses('PowerRoute', 'PowerRouter.Lib');

Router::connect(
    '/path',
    array('controller' => 'pages', 'action' => 'view'),
    array(
        'routeClass' => 'PowerRoute',
        'routeName' => 'main-path',
        'callback' => $callback,
        'condition' => $condition
    )
);

App::uses('PowerRouter', 'PowerRouter.Lib');

PowerRouter::connect(
    'main-path',
    '/path'
    array('controller' => 'pages', 'action' => 'view'),
    array(
        'callback' => $callback,
        'condition' => $condition
    )
);

PowerRouter::connect($name, $route, $defaults = array(), $options = array()) { /*...*/ }

PowerRouter::connect(
    'about',
    '/about-us',
    array('controller' => 'pages', 'action' => 'display', 'about')
);

echo $this->Html->link('About us', array('routeName' => 'about'));

// In your routes.php

PowerRouter::connect(
    'product-view',
    '/product/:slug/:id',
    array('controller' => 'products', 'action' => 'view')
);

// In your views

echo $this->Html->link(
    $product['Product']['title'],
    array(
        'routeName' => 'product-view',
        'slug' => $product['Product']['slug'],
        'id' => $product['Product']['id']
    )
);

// routes.php

$transformRoute = function ($params) {
    $params['action'] = 'dash_' . $params['action'];

    return $params;
};

PowerRouter::connect(
    'route',
    '/dashboard/:controller/:action/*',
    array(),
    array('callback' => $transformRoute)
);

$condition = function () {
    return Configure::read('route') === true;
};

$routes = PowerRouter::connect(
    'test',
    '/findamatch',
    array(
        'controller' => 'main',
        'action' => 'view'
    ), array(
        'condition' => $condition
    )
);