1. Go to this page and download the library: Download yuri-oliveira/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/ */
yuri-oliveira / router example snippets
use YuriOliveira\Router\Request;
use YuriOliveira\Router\Response;
use YuriOliveira\Router\Router;
_SERVER['REQUEST_METHOD'],
$_SERVER['REQUEST_URI'],
$_FILES,
$_GET,
$_POST,
getallheaders()
);
$response = new Response();
$router = new Router($request, $response, SITE['root']);
// Definindo o namespace dos Controllers
$router->namespace('YuriOliveira\Router\Controllers')
// Exemplo de rotas simples
$router->get('/home', 'WebController:home', 'web.home');
$router->post('/registrar', 'WebController:register', 'web.register');
// Exemplo de rotas com parâmetros dinâmicos
$router->get('/usuarios/:user', 'WebController:showUser', 'web.showUser');
$router->post('/usuarios/deletar/:user', 'WebController:deleteUser', 'web.deleteUser');
// Rota dinâmica para receber os erros de requisição
$router->get('/oops/:errorcode', 'App:error', 'app.error');
// Método que faz a classe trabalhar
$router->dispatch();
if ($error = $router->error()) { $router->redirect('app.error', ['errorcode' => $error]); }
class WebController
{
protected Router $router;
public function __construct($router)
{
$this->router = $router;
}
public function showUsers($data, ResponseInterface $response): void
{
$users = User::find()->all();
$response->addContent(print_r($data))->sendResponse();
}
}
class WebController
{
protected Router $router;
public function __construct($router)
{
$this->router = $router;
}
public function showUsers($data, ResponseInterface $response): void
{
// O status da resposta. O status 200 já é o padrão
$response->setStatusHttp(200);
// Conteúdo a ser enviado como resposta
$response->addContent(mixed $content);
// Tipo do conteúdo a ser enviado como resposta. O ContentType 'text/html' já é o padrão
$response->setContentType('text/html');
// Definindo Headers da resposta
// O header Content-Type é informado automaticamente usando o setContentType informado
$response->addHeader(string $key, string $value);
// Enviando resposta para o browser
$response->sendResponse();
}
}