1. Go to this page and download the library: Download dc/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/ */
dc / router example snippets
$container = new \DC\IoC\Container();
$container->registerModules([
new \DC\Router\IoC\Module(['\Fully\Qualified\ControllerName', '\CatsController']),
new \DC\Cache\Module(),
new \DC\JSON\IoC\Module()
]);
$router = $container->resolve('\DC\Router\Router');
$router->route($container->resolve('\DC\Router\IRequest'));
class CatsController extends \DC\Router\ControllerBase {
/**
* @route GET /cats
*/
function list() {
return "<h1>many cats here</h1>";
}
}
/**
* @route GET /cats/{id:int}
*/
function getById($id) {
// $id will be an int here
}
/**
* @route GET /cats/{name}
*/
function getByName($name) {
// $name will be a string (we didn't have to specify string as it is the default)
}
/**
* @route GET /cats/{catName}/toys/{toyId:int}
*/
function getToy($toyId, $catName) {
// notice that the variables for the method do not need to be in the same order as in the route,
// but they need to have the same names
}
/**
* @route GET /cats/?filter={cats:catFilter}
*/
function filterCats($cats, $filter) {
// This uses the catFilter parameter type (see below) to convert the input sent through the
// filter GET parameter and provides it with the variable named $cats. The ONLY time you'll
// use this, is if you want parameter type conversion, or when you want to rename the query
// parameter before it arrives. Note that the $filter parameter is still available, but is
// a string
}
class CatParameterType implements \DC\Router\IParameterType {
private $catService;
function __construct(\ICatService $catService) {
$this->catService = $catService;
}
function getType() { return "cat"; }
function getRegularExpression() { return "\d+"; }
function transformValue($id) {
return $this->catService->get($id);
}
}
$container = new \DC\IoC\Container();
$container->registerModules([
new \DC\Router\IoC\Module(['\CatsController']),
new \DC\Cache\Module(),
new \DC\JSON\IoC\Module()
]);
$container->register('\UserParameterType')->to('\DC\Router\IParameterType')->withContainerLifetime();
$router = $container->resolve('\DC\Router\Router');
$router->route($container->resolve('\DC\Router\IRequest'));
/**
* @route GET /cat/{catObject:cat}
*/
function getCatById(\Cat $catObject) {
var_dump($catObject);
}
class CatsController extends \DC\Router\ControllerBase {
/**
* @param \ICatToy[] $catToys A list of the toys you have for your cats
*/
function __construct(\CatService $catsService, array $catToys) {
// store your catsService and your toys
}
}
class CatsController extends \DC\Router\JsonController {
/**
* @route POST /cat
*/
function new() {
$cat = $this->getRequestBodyAsObject();
return $cat;
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.