dlunire / dlroute
Sistema de rutas simple, eficiente y flexible. Úsalo con DLUnire o intégralo fácilmente en cualquier proyecto PHP
Installs: 215
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/dlunire/dlroute
Requires
- imagine/imagine: ^1.3
 
This package is auto-updated.
Last update: 2025-10-30 02:22:01 UTC
README
DLRoute is a simple, flexible, and efficient routing system designed for web applications in PHP. It provides advanced support for data filtering, parameter types, and clean integration with your application.
🌐 Descripción en Español
DLRoute es un sistema de enrutamiento diseñado para facilitar la gestión de rutas y direcciones URL en aplicaciones web.
Actualmente, permite filtrar por tipos de datos o expresiones regulares. También admite contenido enviado en formato JSON directamente en el cuerpo (body) de la petición.
✅ Características
- Definición de rutas simples y complejas.
 - Manejo de métodos 
HTTP:GET,POST,PUT,PATCH,DELETE. - Soporte para parámetros dinámicos y tipados.
 - Validación por tipo o expresión regular.
 - Uso de controladores o funciones anónimas (
callbacks). - Integración flexible con proyectos PHP nativos o con el framework DLUnire.
 
💾 Instalación
composer require dlunire/dlroute
Ubica tu archivo principal en una carpeta pública (como public/ o html_public). Define las rutas y al final, ejecuta:
DLRoute::execute();
✏️ Sintaxis
DLRoute::get(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::post(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::put(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::patch(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::delete(string $uri, callable|array|string $controller): DLParamValueType;
📌 Ejemplos
Rutas básicas con controlador:
use DLRoute\Requests\DLRoute as Route; use DLRoute\Test\TestController; Route::get('/ruta', [TestController::class, 'method']); Route::get('/ruta/{parametro}', [TestController::class, 'method']);
Definición del controlador:
final class TestController extends Controller { public function tu_metodo(object $params): object|string { return $params; // o HTML si deseas } }
Rutas con tipos:
Route::get('/ruta/{id}', [TestController::class, 'method']) ->filter_by_type(['id' => 'numeric']);
O con expresión regular:
->filter_by_type(['token' => '/[a-f0-9]+/']);
Tipos admitidos
integer, float, numeric, boolean, string, email, uuid
Uso de callbacks:
Route::get('/ruta/{parametro}', function (object $params) { return $params; });
🌍 English Description
DLRoute is a routing system designed to simplify URL management in modern PHP applications. It supports type filtering and regular expressions, and accepts JSON payloads directly from the body.
✅ Features
- Simple and complex route definitions.
 - Supports 
GET,POST,PUT,PATCH,DELETEHTTP methods. - Dynamic route parameters with type filtering.
 - Regular expression-based parameter validation.
 - Supports controllers and callbacks.
 - Easily integrates into native PHP or the DLUnire framework.
 
💾 Installation
composer require dlunire/dlroute
Your index.php should be placed in a public folder (e.g., public/). Remember to execute all defined routes:
DLRoute::execute();
✏️ Syntax
DLRoute::get(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::post(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::put(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::patch(string $uri, callable|array|string $controller): DLParamValueType; DLRoute::delete(string $uri, callable|array|string $controller): DLParamValueType;
📌 Examples
Controller usage:
Route::get('/users', [UserController::class, 'index']); Route::get('/users/{id}', [UserController::class, 'show']);
Controller structure:
final class UserController extends Controller { public function index(object $params): string { return view('users.index', ['users' => []]); } }
With parameter type filtering:
Route::get('/users/{id}', [UserController::class, 'show']) ->filter_by_type(['id' => 'integer']);
Callback usage:
Route::get('/info', function (object $params) { return ['status' => 'ok']; });
If an array or object is returned, DLRoute will automatically send a JSON response.