Grav-ライフサイクル

この章では、Gravのライフサイクルを理解します。Grav Lifecycleは、プラグインを介してGravを拡張するためにGravがどのように処理するかを決定します。次の図は、Gravライフサイクルプロセスのフローを示しています。

Gravライフサイクルからの次の4つのステップ-

  • PHP Version

  • Loader class is initialized

  • Obtain Grav Instance

  • Call Grav Process

PHPバージョン

PHPのバージョンをチェックして、5.4.0以降のPHPバージョンを実行していることを確認します。

ローダークラスが初期化されます

2番目のステップでは、クラスローダーが初期化されます。

Gravインスタンスを取得する

  • インスタンスが存在しない場合は、load()メソッドを呼び出して、Gravを追加します。

  • デバッガーの値を初期化し、デバッガーに追加します。

  • ログとエラーハンドラーを登録します。

  • これは、URI、タスク、イベント、キャッシュ、セッション、プラグイン、テーマ、小枝、分類法、言語、ページ、アセット、およびベースURLを追加します。

  • ストリームと構成ハンドラーを登録します。

Gravプロセスを呼び出す

  • 構成、URIオブジェクト、エラーハンドラー、デバッガー、およびセッションを初期化します。

  • 初期化後、出力のバッファリングを開始します。

  • タイムゾーンとプラグインを初期化し、onPluginsInitializedイベントを発生させます。

  • 次に、テーマを初期化し、onThemeInitializedイベントとonTask [TASK]イベントを発生させます。

  • アセットを初期化し、onAssetsInitializedイベントを発生させます。

  • 次のアクションで小枝を初期化します-

    • 構成に基づいて、小枝テンプレートパスを設定します。

    • 使用可能な言語テンプレートを処理します。

    • 次に、onTwigTemplatePathsイベントを発生させます。

    • ローダーチェーンと小枝の構成が読み込まれます。

    • onTwigInitializedイベントを発生さます。

    • Twigエクステンションをロードし、onTwigExtensionsイベントを発生さます。

    • 標準の小枝変数を設定します。

  • 次に、ページを初期化します。

    • buildPages()メソッドを呼び出します。

    • キャッシュが適切な場合は、キャッシュからページをロードします。キャッシュが適切でない場合は、recurse()メソッドが呼び出されます。

    • onBuildPagesInitializedイベントは、recurse()メソッドで発生します。

    • ファイルが.mdとして見つかった場合、次のアクションが実行されます-

      • ファイルの詳細をロードするために、init()メソッドが呼び出されます。

      • filePath、modified、およびidを設定します。

      • ヘッダ()メソッドは、ヘッダー変数を初期化するために呼び出されます。

      • スラグ()メソッドは、URLのスラグを設定するために呼び出されます。

      • 可視()メソッドは、可視状態を設定するために呼び出されます。

      • _(アンダースコア)で始まるフォルダーに基づいて、modularTwig()が設定されます。

    • 後でonPageProcessedイベントを発生させます。

    • フォルダが見つかった場合、子をrecurse()します。

    • onFolderProcessedイベントを発生させます。

    • buildRoutes()メソッドを呼び出します。

    • すべてのページで分類法が初期化されます

    • ルートテーブルは、高速検索のために構築されています。

  • イベントonPagesInitializedおよびonPageInitializedが発生します。

  • デバッガーCSS / JSがアセットに追加されます。

  • TwigのprocessSite()メソッドを使用して、出力を取得します。

    • イベントonTwigSiteVariablesが発生します。

    • ページの出力を取得します。

    • ページが見つからないかルーティングできない場合、イベントonPageNotFoundが発生します。

    • すべてのTwig変数はTwigオブジェクトに設定されます。

    • テンプレート名は、ファイル/ヘッダー/拡張子の情報に応じて設定されます。

    • render()メソッドが呼び出されます。

    • ファイル形式をHTMLで返します

  • onOutputGeneratedイベントを発生させます。

  • HTTPヘッダーを設定します。

  • 出力を表示します

  • 出力バッファはページにフラッシュされます。

  • イベントonOutputRenderedが発生します。

  • クライアントへの接続を閉じます。

  • 最後に、onShutDownイベントを発生させます。

場合は、コンテンツ()メソッドは、ページ上で呼び出された場合、以下のライフサイクルが発生します。

  • イベントonPageContentRawが発生します。

  • MarkdownとTwigの設定に従って、ページを処理します。

  • onPageContentProcessedイベントを発生させます。