Hasta ahora todos los ficheros que usamos en una aplicación se cargan siempre independientemente de que se usen o no en el hilo actual de ejecución. Puesto que normalmente no se usa más de una clase de actions simultáneamente, esta situación se puede mejorar si cargamos las clases dinámicamente, y puede notarse especialmente en las aplicaciones grandes.
Desde la versión 5 de PHP, existe una funcionalidad nueva que permite, cuando no se encuentra una clase, llamar a una función de usuario donde se incluya el fichero correspondiente. Aprovechando esta funcionalidad nueva, se ha creado una clase en el framework que permite:
registerClass: indicar cada clase en que fichero se ubica
registerFolder: permite almacenar carpetas en las que buscar las clases (siempre que su nombre coincida con un fichero con extensión php)
Combinando los dos métodos podemos configurar la carga de clases de la manera más cómoda y eficiente teniendo en cuenta que:
por defecto se registra la carpeta 'actions'
si una clase no se llama igual que el fichero que la contiene es necesario usar el método 'registerClass'.
En cualquier caso, si no se desea utilizar esta funcionalidad basta con no invocar ninguno de los métodos anteriores. En el fichero include.php de la aplicación podemos seguir haciendo los includes de la manera tradicional.
// obtenemos referencia al objeto $al = GVHAutoLoad::singleton(); // registramos una carpeta donde tenemos clases $al->registerFolder('actions/listados'); // si tengo pocas clases en una carpeta puedo optar por registrarlas individualmente $al->registerClass('cabFactura', 'actions/factura/cabFactura.php'); $al->registerClass('linFactura', 'actions/factura/linFactura.php'); // si las clases no se llaman igual que el fichero donde se encuentran, // no hay mas remedio que registrarlar individualmente $al->registerClass('TinvTipos2', 'actions/TinvTipos.php'); $al->registerClass('TinvSubtipos2', 'actions/TinvSubtipos.php'); ...