PHP code example of polymorphine / routing
1. Go to this page and download the library: Download polymorphine/routing 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/ */
polymorphine / routing example snippets
/**
* assume defined:
* UriInterface $baseUri
* ResponseInterface $nullResponse
* MiddlewareInterface $csrf
* MiddlewareInterface $auth
* callable $adminGate
* callable $notFound
* callable $this->endpoint(string)
*/
$builder = new Builder();
$root = $builder->rootNode()->middleware($csrf)->middleware($auth)->responseScan();
$main = $root->defaultRoute()->callbackGate($adminGate)->link($filteredGuestRoute)->pathSwitch();
$main->root('home')->callback($this->endpoint('HomePage'));
$admin = $main->route('admin')->methodSwitch();
$admin->route('GET')->callback($this->endpoint('AdminPanel'));
$admin->route('POST')->callback($this->endpoint('ApplySettings'));
$main->route('login')->redirect('home');
$main->route('logout')->method('POST')->callback($this->endpoint('Logout'));
$articles = $main->resource('articles')->id('id');
$articles->index()->callback($this->endpoint('ShowArticles'));
$articles->get()->callback($this->endpoint('ShowArticle'));
$articles->post()->callback($this->endpoint('AddArticle'));
$articles->patch()->callback($this->endpoint('UpdateArticle'));
$articles->delete()->callback($this->endpoint('DeleteArticle'));
$articles->add()->callback($this->endpoint('AddArticleForm'));
$articles->edit()->callback($this->endpoint('EditArticleForm'));
$root->route()->path('/login')->methodSwitch([
'GET' => new CallbackEndpoint($this->endpoint('LoginPage')),
'POST' => new CallbackEndpoint($this->endpoint('Login'))
]);
$root->route()->path('/logout')->redirect('home');
$root->route()->path('/admin')->redirect('login');
$root->route()->method('GET')->joinLink($filteredGuestRoute);
$root->route()->callback($notFound);
$router = $builder->router($baseUri, $nullResponse);
$callable = function (ServerRequestInterface $request): ResponseInterface { ... }