Tener en cuenta la inclusión de diferentes ficheros a veces se hace un poco incomodo, bueno esta clase está hecha para mejorar esa pequeña molestia.
Objetivo:
1. Permite que se pueda incluir tanto una clase como un fichero según sea el caso
2. Cuando se realiza una inclusión se incluyen además todas las dependencias del fichero
Ejemplo
Si dentro del fichero que deseo incluir se utiliza una clase, esta se incluye automáticamente.
3. No hay necesidad de tener una estructura estática ya que las direcciones de donde se encuentran las clases y ficheros se genera automáticamente.
4. Además la clase genera un fichero "file_cache" con la información generada, por lo que una vez carga solo se lee el fichero con la información evitando un mapeo de las direcciones
5. A la hora de crear el objeto de la clase se le especifica la dirección que se desea se mapee o analice, puede ser tanto una dirección como un arreglo de direcciones.
Como utilizarla
$include = new ubInclude($dir_cache); //-- dirección donde se guardará el fichero de cache
$include->add_path($dir); //-- dirección a mapear
$include->load(); //-- es necesario para que se mapee la información, en caso de que exista el fichero de cache simplemente se cargará este
$include->include_class($class_name); //-- incluye una clase según el nombre de esta
$include->include_file($file_name); //-- incluye un fichero según su nombre
$include->file_dir("readme_es.txt"); //-- devuelve la dirección de un fichero
Para darle mayor funcionalidad
A veces la simple lógica no es suficiente o por cuestiones de un determinado algoritmo nos vemos obligados a tener ficheros dependiendo recursivamente uno de otro
Ex:
Una clase A necesita de una clase B pero esta al mismo tiempo necesita e la propia clase A.
Aquí en este ejemplo se produciría una inclusión recursiva lo que provocaría problemas al leer, y como el orden de lectura lo decide el desarrollador pues la clase no se hace responsable de ello, para este y otras situaciones que pudieran no estar concebidas hasta el momentos se desarrollaron un conjunto de comandos que permiten mayor comodidad a la hora de realizar la inclusión de una dependencia.
Cuando se pone alguno de estos comandos en un fichero este se interpreta como:
@file fichero //-- especifica la dependencia de un fichero
@class .class //-- especifica la dependencia de una clase
@ignore class //-- especifica la dependencia de una clase que será ignorada por alguna razón que le compete al desarrollador
Especificación
Las dependencias se encuentran a partir de las palabras:
1. abstract
2. final
3. class
4. interface
5. new
6. extends
7. implements
8. @var
Restricciones
1. es necesario que todos los ficheros y clases se nombre de manera diferente |