¡Ajipirijou! josé albornoz's blog

Ruteador simple para aplicaciones PHP

Cuando uno hace aplicaciones en PHP o algún otro lenguaje parecido, generalmente tiene dos opciones: o trabajar con un framework que cumple la función de router o trabajar a "php puro" y tener urls feas y demases.

En el contexto de aplicaciones web, un router es un sistema que toma una petición del servidor web, por ejemplo /post/new, y carga la página correspondiente.

Para un nuevo proyecto que estoy haciendo decidí no usar un framework y hacerme mi propio router, siguiendo un poco la línea de como lo hace Kohana hice el siguiente código.

Trabaja con clases. Si se consulta por /post/jojo va a llamar a el método action_jojo() de la clase Controller_Post, bien similar a lo que hace Kohana.

Las clases las incluí en el archivo controller.php.

Comenté el código y lo subí acá por si le quieren dar una vuelta.

Es importante que le digan a su servidor web que redirija todas las consultas a el archivo index.php.

En nginx puse el siguiente código en mi vhost. try_files $uri $uri/ /index.php;

Ya no recuerdo como se hace en Apache, pero pueden usar el .htaccess de WordPress.

Díganme qué les parece, si les sirvió y qué le mejorarían.

Update: ¿Por qué hice esto?

Comprendo totalmente el fin de los frameworks, de hecho trabajé con uno por un tiempo: Kohana. Me di cuenta que en la práctica no necesito todo lo que me ofrece un framework.

Intenté usar SlimFramework por recomendación de @pottersys, pero lo que a principio resultó simplificar las tareas terminó dificultándolas más, por eso me quise hacer un Router, que es uno de mis mayores fines para usar un framework.

Por mi trabajo no me veo necesitado a simplificar tanto las tareas ni ahorrar tanto tiempo, prefiero tener un poco más de control sobre mi código. Lo que hago acá es juntar un superset de funciones que siempre uso.