1. Go to this page and download the library: Download chrispo/routex-php 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/ */
chrispo / routex-php example snippets
declare(strict_types=1);
use Chrispo\RouterPhp\Response;
use Chrispo\RouterPhp\Router;
$router = new Router();
$router->get('/', function (Request $req, Response $res): void {
$res->json(['message' => 'Hello World']);
});
$router->get('/users/:id', function (Request $req, Response $res): void {
$res->json(['id' => $req->param('id')]);
});
$router->run();
declare(strict_types=1);
$router = new Router();
use Chrispo\RouterPhp\Request;
use Chrispo\RouterPhp\Response;
use App\Controllers\UserController;
use App\Middleware\AuthMiddleware;
$router->use(new CorsMiddleware());
$router->get('/users', [UserController::class, 'index']);
$router->post('/users', [UserController::class, 'store']);
$router->group('/admin', function (Router $r): void {
$r->use(new AuthMiddleware());
$r->get('/dashboard', [AdminController::class, 'index']);
});
$router->get('/users', $handler); // GET
$router->post('/users', $handler); // POST
$router->put('/users/:id', $handler); // PUT
$router->patch('/users/:id', $handler); // PATCH
$router->delete('/users/:id',$handler); // DELETE
$router->options('/users', $handler); // OPTIONS
// Registra el mismo handler para todos los métodos
$router->any('/ping', $handler);
$router->group('/api/v1', function (Router $r): void {
$r->get('/products', $listHandler); // GET /api/v1/products
$r->post('/products', $createHandler); // POST /api/v1/products
$r->get('/products/:id', $showHandler); // GET /api/v1/products/:id
});
declare(strict_types=1);
use Chrispo\RouterPhp\Middleware\MiddlewareInterface;
use Chrispo\RouterPhp\Request;
use Chrispo\RouterPhp\Response;
final class AuthMiddleware implements MiddlewareInterface
{
public function handle(Request $request, Response $response, callable $next): void
{
$token = $request->header('Authorization');
if (!str_starts_with($token, 'Bearer ')) {
// Corta la cadena — el handler de la ruta no se ejecuta
$response->status(401)->json(['error' => 'Unauthorized']);
return;
}
$next($request, $response); // Continúa hacia el handler
}
}
$router->use(new CorsMiddleware(), new LogMiddleware());