Concepto de enrutador de solicitudes dinámico, que no requiere establecer las rutas previamente.
- La única configuración que se requiere es modificar la ruta base en la última línea de
index.php
. Ejemplo, si la URL eshttp://localhost/enrutador-dinamico/
la ruta base es/enrutador-dinamico/
. - Crear las clases públicas en el directorio
clases
(incluso subdirectorios). - Cada clase debe residir en un archivo
.php
y contener una clase del mismo nombre que el archivo en el espacio de nombresclasesPublicas\\subdirectorio
. - Si el nombre presenta
-
se convertirán a nombres válidos de clase, espacio o método de la forma:mi-clase
->miClase
. Esto no aplica al nombre de archivo ni de subdirectorios (debe sermi-ruta/mi-clase.php
). - El método predeterminado de una clase será
inicio()
. - El método predeterminado será
predeterminado::inicio()
enclases/predeterminado.php
. - El método en caso de error será
predeterminado::error()
enclases/predeterminado.php
.
Ruta: /clase/metodo/
Archivo: clase.php
Espacio: clasesPublicas
Clase: clase
Método: metodo
<?php
namespace clasesPublicas;
class clase {
public function metodo() {
echo 'Hola!';
}
}
Ruta: controladores/mi-controlador/mi-metodo/
Archivo: clases/controladores/mi-controlador.php
Espacio: clasesPublicas\controladores
Clase: miControlador
Método: miMetodo
<?php
namespace clasesPublicas\controladores;
class miControlador {
public function miMetodo() {
echo 'Hola II!';
}
}
Ruta: /clase/
Archivo: clase.php
Espacio: clasesPublicas
Clase: clase
Método: inicio
<?php
namespace clasesPublicas;
class clase {
public function inicio() {
echo 'Hola III!';
}
}
El propósito de este repositorio es explorar el potencial y las implicaciones de seguridad de este mecanimsmo.
Si te parece útil, sentite libre de utilizarlo tal cual o integrarlo en otros proyectos.
De lo contrario, estoy dispuesto a aceptar que es basura siempre que el comentario sea acompañado de una explicación técnica que nos enriquezca a todos.
- Verbos. Lo haría configurable en cada método con comentarios de documentación.
- Redireccionamientos.
- Personalizar formato de URI (que no sea siempre
ruta/clase/metodo
).