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イベントを発生させます。