Grav - ciclo de vida

En este capítulo, comprenderemos el ciclo de vida de Grav. El ciclo de vida de Grav determina cómo se procesa Grav para extender Grav a través de complementos. El siguiente diagrama muestra el flujo del proceso del ciclo de vida de Grav.

Los siguientes cuatro pasos del ciclo de vida de Grav:

  • PHP Version

  • Loader class is initialized

  • Obtain Grav Instance

  • Call Grav Process

Versión PHP

Comprueba la versión de PHP para asegurarse de que estamos ejecutando la versión de PHP superior a 5.4.0.

Se inicializa la clase de cargador

En el segundo paso, se inicializa el cargador de clases.

Obtener instancia de gravedad

  • Si no existe ninguna instancia, llama al método load () y agrega Grav.

  • Inicializa el valor del depurador y lo agrega al depurador.

  • Registra el registro y el controlador de errores.

  • Agrega la uri, la tarea, los eventos, la caché, la sesión, los complementos, los temas, la ramita, la taxonomía, el idioma, las páginas, los activos y la URL base.

  • Registra la secuencia y el controlador de configuración.

Llamar al proceso de Grav

  • Inicializa la configuración, el objeto Uri, el controlador de errores, el depurador y la sesión.

  • Después de inicializar, comienza a almacenar en búfer la salida.

  • Inicializa la zona horaria y los complementos y desencadena el evento onPluginsInitialized .

  • A continuación, inicializa el tema y activa los eventos onThemeInitialized y onTask [TASK] .

  • Inicializa los activos y dispara el evento onAssetsInitialized .

  • Inicializa la ramita con las siguientes acciones:

    • Según la configuración, establece las rutas de la plantilla de ramitas.

    • Maneja las plantillas de idioma disponibles.

    • A continuación, dispara el evento onTwigTemplatePaths .

    • Se carga la configuración de la cadena y la ramita del cargador.

    • Incendios onTwigInitialized evento.

    • Carga las extensiones de ramitas y activa el evento onTwigExtensions .

    • Establece las variables de ramitas estándar.

  • A continuación, inicializa las páginas.

    • Llama al método buildPages () .

    • Si la caché es buena, carga las páginas desde la caché. Si el caché no es bueno , se llama al método recurse () .

    • El evento onBuildPagesInitialized se activa en el método recurse () .

    • Si se encuentra un archivo como .md , se realizan las siguientes acciones:

      • Para cargar los detalles del archivo, se llama al método init () .

      • Establece filePath, modificado e id.

      • Se llama al método header () para inicializar las variables de encabezado.

      • Se llama al método slug () para establecer la URL slug.

      • Se llama al método visible () para establecer el estado visible.

      • Según la carpeta que comienza con _ (guión bajo), se establece modularTwig () .

    • Luego dispara el evento onPageProcessed .

    • recurse () los hijos si se encuentra una carpeta.

    • Se dispara la onFolderProcessed evento.

    • llama al método buildRoutes () .

    • Para todas las páginas se inicializa la taxonomía

    • La tabla de ruta está diseñada para una búsqueda rápida.

  • Los eventos onPagesInitialized y onPageInitialized se activan .

  • El depurador CSS / JS se agrega a los activos.

  • Usando el método processSite () de Twig , obtenemos el resultado.

    • Se dispara el evento onTwigSiteVariables .

    • Obtiene el resultado de la página.

    • Cuando la página no se encuentra o no se puede enrutar, se activa el evento onPageNotFound .

    • Todas las variables Twig se establecen en el objeto twig.

    • El nombre de la plantilla se establece según la información del archivo / encabezado / extensión.

    • Se llama al método render () .

    • Devuelve el formato de archivo en HTML

  • Se dispara la onOutputGenerated evento.

  • Configure los encabezados HTTP.

  • Muestra la salida

  • El búfer de salida se descarga a la página.

  • El evento onOutputRendered se activará .

  • Cierra la conexión con el cliente.

  • Por último, activa el evento onShutDown .

Cuando se llama al método content () en la página, se produce el siguiente ciclo de vida.

  • El evento onPageContentRaw se activará .

  • De acuerdo con la configuración de Markdown y Twig, procesa la página.

  • Se dispara la onPageContentProcessed evento.