Sistema de carga
La carga de WEBvivo se ejecuta desde el archivo index.php del directorio raíz de los documentos, todo el URI se pasa a este archivo con un redirect de Apache.
La carga se hace con un include al cargador (loader), que carga:
- conf_framework.php (contiene los arrays de configuración). En este punto WEBvivo no está inicializado, por lo que sólo contiene elementos de configuración previos a la carga.
- WEBvivo class (la librería principal que inicializa todo el framework)
- conf_project.php (contiene llamadas a funciones o inicialización de variables necesarias para el proyecto). En este punto WEBvivo está cargado por lo que es posible usar cualquier método. Aquí se puede poner todo aquello que sea de uso común para todo el proyecto ya que esta página se ejecuta antes de cualquier contenido o del envío de cualquier cabecera.
En este punto WEBvivo está en funcionamiento y genera tres objetos para la carga del contenido de la página:
- skeleton_above (parte de la plantilla de la web anterior al contenido)
- content (página de contenido)
- skeleton_below (parte de la plantilla de la web posterior al contenido)
Opcionalmente:
- Si la página tiene el switch "nh" (No Headers), no se cargan el punto 1 y 3 (sólo el contenido). Esto es útil por ejemplo para páginas que hacen descargas de archivos o generan imágenes o para la parte del servidor de páginas ajax, servicios web o APIs.
- Si la página se carga del caché, no se carga ninguna de las tres, recuperándose la página entera del caché. Este es un caché de páginas que es poco apropiado cuando existen contenidos que varían con independencia del contenido, en estos casos, es mejor usar el caché de elementos.
- El caché de elementos necesita que redis-server y php-redis estén presentes y permite generar bloques cacheables dentro del contenido, que son regenerados cuando las tablas utilizadas cambian su checksum.