Eliminación de las variables globales de Dolibarr

La verdad es que tratar de crear una primera versión MVC de Dolibarr, manteniendo más o menos el código actual, se está convirtiendo en una tarea bastante complicada.

En estos momentos, el código está totalmente destrozado. Sencillamente, no funciona. Es normal, no me preocupa en absoluto, ya que se están realizando cambios muy profundos en la estructura de la aplicación.

Establecer un único punto de entrada

En este punto, ya hemos conseguido establecer un único punto de entrada, accediendo exclusivamente a través de htdocs/index.php, en lugar de entrar desde cada archivo php.

El código a ejecutar, viene establecido por las variables GET module y controller.

Se ha creado una carpeta Dolibarr dónde estará el código original, con muy pocos cambios, organizado en clases y librerías. Las librerías estarán en una clase pasando las funciones originales, a ser métodos de dicha clase, que serán llamados de forma estática. Organizarlo de esta forma, nos va a facilitar el uso de Namespaces.

La clase DolibarrGlobals

Al organizar el código, una de las primeras cosas que tenemos que hacer, es eliminar las variables globales. Para conseguir ese objetivo, todas las variables que sean necesarias en distintos puntos de la aplicación, estarán definidas en la clase DolibarrGlobals.

Es necesario poder cargar una variable global desde cualquier punto, y que además, la variable sea la misma instancia.

Para ello, se crean dichas variables como variables estáticas dentro de la clase DolibarrGlobals, el constructor las asignará en el orden correcto, pues pueden existir dependencias entre ellas, y posteriormente, tendremos un método getNombreDeLaVariable para cada una de ellas, que nos retornará la instancia que deseamos tener.

Así por ejemplo getLangs() nos retornará una instancia del traductor. Allí dónde haga falta usar el traductor, podremos usar DolibarrGlobals::getLangs() para obtener una instancia del mismo:

$langs = DolibarrGlobals::getLangs();

No me he preocupado aún de mejorar el código. De momento, estoy reorganizándolo. A medio plazo, toda clase que comience con Dolibarr será eliminada y sutituída por código totalmente nuevo.

Scroll al inicio