File Search Paths: Difference between revisions
Karla Matus (talk | contribs) No edit summary |
Karla Matus (talk | contribs) No edit summary |
||
Line 2: | Line 2: | ||
El I2CE (Intrahealth Informatics Core Engine) utiliza una utilidad de búsqueda de Archivos para organizar los archivos en categorías y | El I2CE (Intrahealth Informatics Core Engine) utiliza una utilidad de búsqueda de Archivos para organizar los archivos en categorías y definir prioridades para la búsqueda en los directorios. Desde la versión 3.2 también porporciona [[#Localizing Paths|localization]] de archivos. | ||
Todos los archivos, con muy pocas excepciones, se encuentran utilizando la clase ''I2CE_FileSearch'' definida en ''I2CE/lib/I2CE_FileSearch.php.'' Las excepciones son aquellos archivos bajo ''I2CE/lib.'' | Todos los archivos, con muy pocas excepciones, se encuentran utilizando la clase ''I2CE_FileSearch'' definida en ''I2CE/lib/I2CE_FileSearch.php.'' Las excepciones son aquellos archivos bajo ''I2CE/lib.'' | ||
= | =Categorías de Rutas= | ||
Las categorías de rutas utilizadas comunmente son: | |||
* | *plantillas Estos son los directorios para buscar archivos de plantillas html | ||
* | *imágenes Estos son los directorios para buscar archivos de imágenes | ||
*css | *css Estos son los directorios para buscar archivos CSS | ||
*scripts | *scripts Estos son los directorios para buscar archivos javascript | ||
* | *clases Estos son los directorios para buscar archivos que contienen clases php. La convención aquí es que MyClass está localizado en el archivo MyClass.php | ||
* | *módulos Estos son los directorios para buscar módulos | ||
Usted puede crear sus propias categorías de rutas. | |||
= | =Prioridades= | ||
Los directorios en una categoría dada se buscan por un archive en orden de la prioridad màs baja a la màs alta. Si dos directorios tienen la misma prioridad y el mismo archive, no hay garantía de cúal archivo regresará. | |||
Las rutas agregadas por un módulo tienen la prioridad negativa de ese módulo. Por ejemplo, un archive de plantilla en I2CE tiene una prioridad de 0, mientras que un archivo de plantilla encontrado en ihris-manage tiene una prioridad de -200 para que el archivo de plantilla en ihris-manage se encuentre primero. Hay dos excepciones: las rutas agregadas por un módulo en las 'clases' o 'módulos' se agregan con la prioridad del modulo para que una clase php encontrada en I2CE tome precedencia sobre una en ihris-manage que tienen una prioridad de 200. | |||
= | =Agregar Rutas= | ||
La forma más común de agregar un directorio a una ruta de búsqueda es hacerlo a través de una estructura de módulos [[Module Structure#Module Configuration File|configuration file]]. por ejemplo: | |||
<path name='classes'> | <path name='classes'> | ||
<value>./lib</value> | <value>./lib</value> | ||
</path> | </path> | ||
Las etiquetas de <value> pueden ser rutas absolutas o relativas. Si son relativas, es con respecto al directorio que contiene este archivo de configuración. | |||
Algunas Salvedades: | |||
* | *Si agrega un '*' al final de una ruta que termina en '/' (o '\' para windows), esto dice que todos los sub-directorios de este directorio deben añadirse a la ruta. Por ejemplo, <value>./my_path/*</value> agrega todos los sub-directorios bajo ./my_path/ | ||
* | *Si agrega un '*' al final de una ruta que no termina en '/' (o '\' para windows) esto dice que agregamos todos los directorios que concuerdan con el archivo glob. Por ejemplo, <value>./my_paths/go*</value> agrega todos los sub-directorios de my_paths que empiezan con go. | ||
* | *Si agrega un '**' al final de una ruta que termina en '/' (o '\' para windows) agregará todos los sub-directorios, sub-sub-directorios, sub-sub-sub-directorios etc de la ruta dada. | ||
* | *Si un directorio que usted agrega tiene un sub-directorio llamado 'local'`primero buscará lo relativo a este subdirectorio para este archivo. Esto es útil para propósitos de desarrollo para prevenir que las cosas se comprometan a bazaar. | ||
* | *Ver [[#Localization|localization]] | ||
= | =Localización= | ||
Dese la version 3.2, hemos agregado la habilidad de localizar una ruta. Cuando se agrega una ruta a la utilidad de búsqueda de archivos, primero revisa si el subirectorio està ''en_US.'' Si no existe, entonces este directorio no se considera localizado. Si existe, la ruta se considera localizada. En este caso, consideramos que cada sub-directorio corresponde a un local. | |||
Los locales preferidos se esablecen por usuario. Por ejemplo, si mis locales preferidos fueran ''fr_RW'' y luego ''fr_FR'' y luego ''en_US'' y estoy buscando el archivo ''main.html'' en ''./templates'' que tiene ''en_US'' como in sub-directorio, buscaría ''main.html'' en este orden: | |||
*./templates/fr_RW/main.html | *./templates/fr_RW/main.html | ||
*./templates/fr_FR/main.html | *./templates/fr_FR/main.html | ||
*./templates/en_US/main.html | *./templates/en_US/main.html | ||
hasta encontrar el archivo que quería. Si no estuviese ahí, buscaría ''main.html'' en un directorio prioridad más alta. | |||
= | =Caché= | ||
Debido a la alta frecuencia con que se buscan archivos, una busqueda exitosa tendría sus resultados en el cache via [http://pecl.php.net/package/APC apc]. En la versión 3.1, estos resultados se guardan globalmente. A partir de la versión 3.2, dado que la preferencia de localización es definida por usuario, estos resultados se guardan en el caché por usuario. | |||
Por defecto, un archivo se considera obsolete después de 60 segundos. El cache se puede desactivar al modificar los datos magic en /I2CE/fileSearch/stale_time (vea ''I2CE/I2CE_Configuration.xml''). | |||
'''<span style='color:red'>Caution:</span>''' | '''<span style='color:red'>Caution:</span>'''Si está desarrollando un módulo nuevo y agrega un archivo de plantilla, el sistema no lo archivará inmediatamente porque los resultados de la búsqueda de archivos se guardan en el caché. Usted puede esperar los 60 segundos o limpiar los resultados guardados en la memoria cache [http://pecl.php.net/package/APC apc]. | ||
[[Category:Technical Overview]][[Category:Modules]][[Category:Search]][[Category:Review2013]][[Category:Needs Intro]] | [[Category:Technical Overview]][[Category:Modules]][[Category:Search]][[Category:Review2013]][[Category:Needs Intro]] |
Revision as of 00:43, 28 September 2013
En este artículo describimos la utilidad de la Búsqueda de Archivos que es parte de iHRIS. Dicha utilidad le permite categorizar y agrupar facilmente archivos diferentes y ponerlos a disposición de iHRIS. También le permite copiar un archive de la core iHRIS Suite en la personalización de su sitio para hacer cambios ahí, sin tener que modificar el software central de iHRIS.
El I2CE (Intrahealth Informatics Core Engine) utiliza una utilidad de búsqueda de Archivos para organizar los archivos en categorías y definir prioridades para la búsqueda en los directorios. Desde la versión 3.2 también porporciona localization de archivos.
Todos los archivos, con muy pocas excepciones, se encuentran utilizando la clase I2CE_FileSearch definida en I2CE/lib/I2CE_FileSearch.php. Las excepciones son aquellos archivos bajo I2CE/lib.
Categorías de Rutas
Las categorías de rutas utilizadas comunmente son:
- plantillas Estos son los directorios para buscar archivos de plantillas html
- imágenes Estos son los directorios para buscar archivos de imágenes
- css Estos son los directorios para buscar archivos CSS
- scripts Estos son los directorios para buscar archivos javascript
- clases Estos son los directorios para buscar archivos que contienen clases php. La convención aquí es que MyClass está localizado en el archivo MyClass.php
- módulos Estos son los directorios para buscar módulos
Usted puede crear sus propias categorías de rutas.
Prioridades
Los directorios en una categoría dada se buscan por un archive en orden de la prioridad màs baja a la màs alta. Si dos directorios tienen la misma prioridad y el mismo archive, no hay garantía de cúal archivo regresará.
Las rutas agregadas por un módulo tienen la prioridad negativa de ese módulo. Por ejemplo, un archive de plantilla en I2CE tiene una prioridad de 0, mientras que un archivo de plantilla encontrado en ihris-manage tiene una prioridad de -200 para que el archivo de plantilla en ihris-manage se encuentre primero. Hay dos excepciones: las rutas agregadas por un módulo en las 'clases' o 'módulos' se agregan con la prioridad del modulo para que una clase php encontrada en I2CE tome precedencia sobre una en ihris-manage que tienen una prioridad de 200.
Agregar Rutas
La forma más común de agregar un directorio a una ruta de búsqueda es hacerlo a través de una estructura de módulos configuration file. por ejemplo:
<path name='classes'> <value>./lib</value> </path>
Las etiquetas de <value> pueden ser rutas absolutas o relativas. Si son relativas, es con respecto al directorio que contiene este archivo de configuración. Algunas Salvedades:
- Si agrega un '*' al final de una ruta que termina en '/' (o '\' para windows), esto dice que todos los sub-directorios de este directorio deben añadirse a la ruta. Por ejemplo, <value>./my_path/*</value> agrega todos los sub-directorios bajo ./my_path/
- Si agrega un '*' al final de una ruta que no termina en '/' (o '\' para windows) esto dice que agregamos todos los directorios que concuerdan con el archivo glob. Por ejemplo, <value>./my_paths/go*</value> agrega todos los sub-directorios de my_paths que empiezan con go.
- Si agrega un '**' al final de una ruta que termina en '/' (o '\' para windows) agregará todos los sub-directorios, sub-sub-directorios, sub-sub-sub-directorios etc de la ruta dada.
- Si un directorio que usted agrega tiene un sub-directorio llamado 'local'`primero buscará lo relativo a este subdirectorio para este archivo. Esto es útil para propósitos de desarrollo para prevenir que las cosas se comprometan a bazaar.
- Ver localization
Localización
Dese la version 3.2, hemos agregado la habilidad de localizar una ruta. Cuando se agrega una ruta a la utilidad de búsqueda de archivos, primero revisa si el subirectorio està en_US. Si no existe, entonces este directorio no se considera localizado. Si existe, la ruta se considera localizada. En este caso, consideramos que cada sub-directorio corresponde a un local.
Los locales preferidos se esablecen por usuario. Por ejemplo, si mis locales preferidos fueran fr_RW y luego fr_FR y luego en_US y estoy buscando el archivo main.html en ./templates que tiene en_US como in sub-directorio, buscaría main.html en este orden:
- ./templates/fr_RW/main.html
- ./templates/fr_FR/main.html
- ./templates/en_US/main.html
hasta encontrar el archivo que quería. Si no estuviese ahí, buscaría main.html en un directorio prioridad más alta.
Caché
Debido a la alta frecuencia con que se buscan archivos, una busqueda exitosa tendría sus resultados en el cache via apc. En la versión 3.1, estos resultados se guardan globalmente. A partir de la versión 3.2, dado que la preferencia de localización es definida por usuario, estos resultados se guardan en el caché por usuario.
Por defecto, un archivo se considera obsolete después de 60 segundos. El cache se puede desactivar al modificar los datos magic en /I2CE/fileSearch/stale_time (vea I2CE/I2CE_Configuration.xml).
Caution:Si está desarrollando un módulo nuevo y agrega un archivo de plantilla, el sistema no lo archivará inmediatamente porque los resultados de la búsqueda de archivos se guardan en el caché. Usted puede esperar los 60 segundos o limpiar los resultados guardados en la memoria cache apc.