1. Go to this page and download the library: Download adinan-cenci/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/ */
adinan-cenci / router example snippets
use AdinanCenci\Router\Router;
$r = new Router();
$r->add('get', '#home$#', 'controller');
// You may inform a single http method:
$r->add('get', '#home#', 'controller')
// Or several inside an array ...
$r->add(['get', 'post'], '#home#', 'controller')
// Or in a pipe separated string
$r->add('get|post', '#home#', 'controller')
// Or use an sterisk to match all methods.
$r->add('*', '#home#', 'controller')
$r->add('get', '#anonymous-function$#', function($request, $handler)
{
echo 'Anonymous function';
})
//-------------
->add('get', '#named-function$#', 'namedFunction')
//-------------
->add('get', '#static-methods$#', ['MyClass', 'staticMethod'])
// A single string also works:
->add('get', '#static-methods$#', 'MyClass::staticMethod')
//-------------
// Of course, it also accepts instances of Psr\Http\Server\MiddlewareInterfac
// ( see the PSR-15 specification for more information )
->add('get', '#psr-15$#', $middleware)
//-------------
->add('get', '#object-and-method$#', [$object, 'methodName'])
//-------------
->add('get', '#object$#', $object)
// The ::__invoke() magic method will be called.
//-------------
->add('get', '#class-and-method$#', ['MyClass', 'methodName'])
// It will attempt to instantiate the class first.
// A single string also works:
->add('get', '#class-and-method$#', 'MyClass::methodName')
//-------------
->add('get', '#class$#', ['MyClass'])
// It will attempt to instantiate the class and call the ::__invoke() magic method.
// Examples
$r->get('#home#', $call); /* is the same as */ $r->add('get', '#home#', $call);
$r->post('#home#', $call); /* is the same as */ $r->add('post', '#home#', $call);
$r->put('#home#', $call); /* is the same as */ $r->add('put', '#home#', $call);
$r->delete('#home#', $call); /* is the same as */ $r->add('delete', '#home#', $call);
$r->options('#home#', $call); /* is the same as */ $r->add('options', '#home#', $call);
$r->patch('#home#', $call); /* is the same as */ $r->add('patch', '#home#', $call);
$r->run();
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Server\RequestHandlerInterface;
$r->add('get', '#home$#', function(ServerRequestInterface $request, RequestHandlerInterface $handler)
{
// Psr\Http\Message\ResponseFactoryInterface instance.
$responseFactory = $handler->responseFactory;
// Returns an instance of ResponseInterface with code 200.
return $responseFactory->createResponse(200, 'OK');
});
$responseFactory = $handler->responseFactory;
// Response with code 200
$responseFactory->ok('your html here');
// Response with code 201
$responseFactory->created('your html here');
// Response with code 301
$responseFactory->movedPermanently('https://redirect.here.com');
// Response with code 302
$responseFactory->movedTemporarily('https://redirect.here.com');
// Response with code 400
$responseFactory->badRequest('your html here');
// Response with code 401
$responseFactory->unauthorized('your html here');
// Response with code 403
$responseFactory->forbidden('your html here');
// Response with code 404
$responseFactory->notFound('your html here');
// Response with code 500
$responseFactory->internalServerError('your html here');
// Response with code 501
$responseFactory->notImplemented('your html here');
// Response with code 502
$responseFactory->badGateway('your html here');
// Response with code 503
$responseFactory->serviceUnavailable('your html here');
$r->setNotFoundHandler(function($request, $handler, $path)
{
return $handler->notFound
->internalServerError('<h1>Error 404</h1><p>Nothing found related to "' . $path . '"</p>');
});
// Example
$r->setDefaultNamespace('MyProject');
$r->add('get', '#home#', 'MyClass::method');
// If MyClass does not exist, the router will assume it refers to
// MyProject\MyClass::method()
// /var/www/html/foobar/index.php
$r = new Router('/var/www/html/');
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.