Grav - Ciclo de Vida

Neste capítulo, vamos entender o ciclo de vida do Grav. Grav Lifecycle determina como o Grav processa a fim de estender o Grav por meio de plug-ins. O diagrama a seguir mostra o fluxo do processo de ciclo de vida Grav.

As quatro etapas a seguir do ciclo de vida Grav -

  • PHP Version

  • Loader class is initialized

  • Obtain Grav Instance

  • Call Grav Process

Versão PHP

Ele verifica a versão do PHP para ter certeza de que estamos executando a versão do PHP acima de 5.4.0.

A classe do carregador foi inicializada

Na segunda etapa, o carregador de classes é inicializado.

Obter instância Grav

  • Se nenhuma instância existir, ele chama o método load () e adiciona Grav.

  • Ele inicializa o valor do depurador e adiciona ao depurador.

  • Ele registra o log e o manipulador de erros.

  • Ele adiciona o uri, tarefa, eventos, cache, sessão, plug-ins, temas, galho, taxonomia, idioma, páginas, ativos e url base.

  • Ele registra o fluxo e o manipulador de configuração.

Processo de Gravação de Chamadas

  • Ele inicializa a configuração, o objeto Uri, o manipulador de erros, o depurador e a sessão.

  • Após a inicialização, ele começa a armazenar a saída em buffer.

  • Ele inicializa o fuso horário e os plug-ins e dispara o evento onPluginsInitialized .

  • Em seguida, ele inicializa o tema e dispara os eventos onThemeInitialized e onTask [TASK] .

  • Ele inicializa os ativos e dispara o evento onAssetsInitialized .

  • Ele inicializa o galho com as seguintes ações -

    • Com base na configuração, ele define os caminhos do modelo de galho.

    • Lida com os modelos de idioma disponíveis.

    • Em seguida, ele dispara o evento onTwigTemplatePaths .

    • A corrente do carregador e a configuração do galho são carregadas.

    • Dispara o evento onTwigInitialized .

    • Ele carrega as extensões do twig e dispara o evento onTwigExtensions .

    • Ele define as variáveis ​​padrão do galho.

  • Em seguida, ele inicializa as páginas.

    • Ele chama o método buildPages () .

    • Se o cache estiver bom, ele carrega as páginas do cache. Se o cache não for bom, o método recurse () será chamado.

    • O evento onBuildPagesInitialized é disparado no método recurse () .

    • Se um arquivo for encontrado como .md , as seguintes ações serão executadas -

      • Para carregar os detalhes do arquivo, o método init () é chamado.

      • Ele define o filePath, modificado e id.

      • O método header () é chamado para inicializar variáveis ​​de cabeçalho.

      • O método slug () é chamado para definir o slug da URL.

      • O método visible () é chamado para definir o estado visível.

      • Com base na pasta que começa com _ (sublinhado), modularTwig () é definido.

    • Posteriormente, ele dispara o evento onPageProcessed .

    • recurse () os filhos se uma pasta for encontrada.

    • Ele dispara o evento onFolderProcessed .

    • chama o método buildRoutes () .

    • Para todas as páginas, a taxonomia é inicializada

    • A tabela de rotas é construída para uma pesquisa rápida.

  • Os eventos onPagesInitialized e onPageInitialized são disparados.

  • O depurador CSS / JS é adicionado aos ativos.

  • Usando o método processSite () do Twig , obtemos a saída.

    • O evento onTwigSiteVariables é disparado.

    • Obtém a saída da página.

    • Quando a página não é encontrada ou não roteável, o evento onPageNotFound é disparado.

    • Todas as variáveis ​​Twig são definidas no objeto twig.

    • O nome do modelo é definido dependendo das informações do arquivo / cabeçalho / extensão.

    • método render () é chamado.

    • Retorna o formato do arquivo em HTML

  • Ele dispara o evento onOutputGenerated .

  • Defina os cabeçalhos HTTP.

  • Exibe a saída

  • O buffer de saída é liberado para a página.

  • O evento onOutputRendered será acionado .

  • Fecha a conexão com o cliente.

  • Por último, ele dispara o evento onShutDown .

Quando o método content () é chamado na página, ocorre o seguinte ciclo de vida.

  • O evento onPageContentRaw será acionado .

  • De acordo com as configurações de Markdown e Twig, ele processa a página.

  • Ele dispara o evento onPageContentProcessed .