Hola, estoy haciendo un sistema MVC a modo de práctica.. tomé un ejemplo del libro
PHP y MVC en PHP y noté que para manipular las URLs usa $_SERVER['REQUEST_URI'] y a mí me parece más práctico manipular las URLs con $_GET modificando el archivo .htaccess (así había aprendido a hacer)..
Les doy un ejemplo, si tengo como url mvc/noticias/agregar me veo con un problema a la hora de manipular la URL
Código PHP:
$event = VIEW_GET_USER;
$uri = $_SERVER['REQUEST_URI'];
$peticiones = array(SET_USER, GET_USER, DELETE_USER, EDIT_USER,
VIEW_SET_USER, VIEW_GET_USER, VIEW_DELETE_USER,
VIEW_EDIT_USER);
foreach ($peticiones as $peticion) {
$uri_peticion = $peticion;
if (strpos($uri, $peticion) == true) {
$event = $peticion;
}
}
(Aparte tengo un archivo con las constantes)
Código PHP:
<?php
const MODULO = 'usuarios/';
// controladores
const SET_USER = 'set';
const GET_USER = 'get';
const DELETE_USER = 'delete';
const EDIT_USER = 'edit';
// vistas
const VIEW_SET_USER = 'agregar';
const VIEW_GET_USER = 'buscar';
const VIEW_DELETE_USER = 'borrar';
const VIEW_EDIT_USER = 'modificar';
?>
Qué pasa si tengo esta URL: mvc/noticias/agregar/UNA_URL_CUALQUIERA_1234
El script sólo compara la petición AGREGAR, puedo escribir cualquier otra cosa en la url, al script solo le importa que tenga la petición agregar. El script ignora el resto de la URL y no debería ser así, una URL tiene que ser exacta. Sin embargo si es con $_GET puedo manipular las peticiones de una manera más "exacta" digamos y además puedo manipular la URL desde el .htaccess
Me pueden orientar para encontrar la mejor solución a esto? habría alguna forma de combinar $_SERVER['REQUEST_URI'] con expresiones regulares para lograr lo que necesito? Es mejor usar $_GET y .htaccess?