Crear un único punto de entrada a Dolibarr y utilizar Composer para la gestión de dependencias, ofrece una serie de ventajas significativas en términos de seguridad, mantenimiento y escalabilidad de la aplicación.
Optimizando Dolibarr: Un único punto de entrada.
Cuando se gestiona una solución de gestión empresarial tan compleja como Dolibarr, que se caracteriza por ser de las más flexibles y configurables, no podemos dejar de un lado la renovación de las técnicas de programación, con el fin de facilitar el trabajo de los desarrolladores y tratar de aportar la máxima seguridad y garantía a los clientes que la usan.
¿Qué es tener un único punto de entrada y qué ventajas aporta?
Básicamente, tener un único punto de entrada, supone que todas las llamadas a la aplicación desde un navegador, se harán pasando por un único archivo (por ejemplo, index.php); y desde ahí, se distribuirá a las diferentes partes de la aplicación. Actualmente, prácticamente cada archivo de la aplicación es un punto de entrada, lo que dificulta el mantenimiento de la aplicación por diversos motivos:
- Mejora la seguridad: Al limitar todos los accesos a un único punto, se facilita la comprobación de las medidas de seguridad, teniendo que ser controladas en un único punto y no en todos los archivos de la aplicación.
- Mantenimiento simplificado: Si se necesitan añadir mejoras, muchas de ellas se podrán hacer directamente en el punto de entrada estando disponibles en toda la aplicación. Actualmente, dichas mejoras habría que ir haciéndolas archivo a archivo.
- Un enrutamiento más flexible al tener una gestión centralizadas de las rutas, permitiendo incluso implementar URL amigables y redirecciones de código más simples. En estos momentos, hay archivos en distintas carpetas, y al ejecutar uno de ellos, ni siquiera sabemos en qué ruta nos encontramos, dificultándose la carga con una maraña de includes con rutas relativas.
- En definitiva, añade mucha más consistencia al proyecto.
¿Cómo se implementa el único punto de entrada?
Para implementar un único punto de acceso, lo más sencillo es utilizar un archivo .htaccess que redirija las rutas hacia el archivo index.php
RewriteEngine On
RewriteRule ^(.+)/(.+)\.php$ index.php?url_route=$1&url_filename=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
El código anterior, toma una ruta escrita de la siguiente forma /admin/modules.php
y la redirige a index.php pasándole dos variables GET, funcionando como si fuese de la siguiente forma: index.php?url_route=admin&url_filename=modules
.
El archivo index.php inicializa todo lo que necesite (ahora o en un futuro), crea la ruta en la que debe de estar el archivo, cambia a dicha carpeta y lo carga (para mantener la máxima compatibilidad).
Composer: Revolucionando la gestión de dependencias.
Además de optimizar la estructura con un único punto de entrada, en dicho punto podemos cargar todas las dependencias usando Composer, garantizando que todos los paquetes que utilice la aplicación estén debidamente actualizados.
También se implementa la opción de uso de namespaces, que permiten mejorar la modularidad de la aplicación.
Composer añade algunas ventajas como son:
- La gestión automatizada de dependencias, garantizando que tengamos instalada las versiones que necesitamos de cada paquete.
- La opción autoload, que nos permite cargar todas las dependencias y namespaces en el punto de entrada de la aplicación.
- Código probado y revisado por la comunidad, al utilizar paquetes estándares que nos garantizan un código más robusto.
Conclusiones
Adoptar un único punto de entrada y Composer en Dolibarr presenta un camino hacia una mayor seguridad, eficiencia y mantenibilidad. Aunque pueda requerir un esfuerzo inicial de configuración y adaptación, los beneficios a largo plazo en términos de escalabilidad, gestión de dependencias y seguridad hacen que valga la pena el esfuerzo. Al final del día, lo que buscamos es crear aplicaciones que no solo sean poderosas y flexibles, sino también robustas y fáciles de mantener.