Skip to content

Instantly share code, notes, and snippets.

@nickl-
Forked from alganet/router.php
Created July 13, 2012 13:46
Show Gist options
  • Save nickl-/3104970 to your computer and use it in GitHub Desktop.
Save nickl-/3104970 to your computer and use it in GitHub Desktop.
Another approach to multiple paths
<?php
$paths = array(
'/users',
'/users/*',
'/users/*/lists',
'/users/*/lists/*',
);
// Multiple paths handled by single callback
$r3->any($paths, function ($userId=null,$listId=null) {/***/}
))->by($processors)->when($conditions)->through($formatters)->accept($conneg);
// Multiple paths handled by single controller
$r3->any($paths, 'MyApp\Controllers\UserController'
))->by($processors)->when($conditions)->through($formatters)->accept($conneg);
$paths = array(
'/users',
'/users/*',
'/users/*/lists',
'/users/*/lists/*',
'/user-roles',
'/user-roles/*',
'/user-roles/*/lists',
'/user-roles/*/lists/*',
'/user-perms',
'/user-perms/*',
'/user-perms/*/lists',
'/user-perms/*/lists/*',
);
// Multiple paths handled by single factory
// producing different controllers based on path
$r3->any($paths, "MyApp\Controllers\iControllerInterface", array('MyApp\Controllers\ControllerFactory', 'getControllerFor')
))->by($processors)->when($conditions)->through($formatters)->accept($conneg);
@alganet
Copy link

alganet commented Jul 13, 2012

Possible implementation for linkTo:

    <?php
        $r3->any('/administrators/*', function ($adminId=null) {/***/}
    ))->by($allMeansPossible)->linksTo($userRoute->at('/users/*'), function($data, $link, $adminId) { // $adminId fed by ParamSynced
        $data['links'] = array("href" => $link, "title" => "User Page for {$data['name']}");
        return $data;
    });

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment