Core · フレームワーク · ランタイムと拡張の仕組み

アプリの起動とライフサイクル

ライフサイクルの段階は、サービスの宣言、非同期の初期化、コンシューマーの起動、後片付けを分けます。アプリとプラグインはこの順序を共有し、依存関係の準備のタイミングを明確にします。

段階の順序

プレーンテキスト
Server: validate → register → locales → boot → routes → start → ready
Client: register → boot → render configuration → validation → start → ready
Shutdown: reverse Provider order

各段階では、次の段階が始まる前にすべての Provider をたどります。サーバーは、準備完了後にテンプレートのサンプルデータの動作も扱います。これは業務のリクエストのトランザクションとは別のものです。

フック適した作業
register()インスタンスや遅延評価の同期のファクトリーを結び付ける
boot()依存関係を解決し、非同期に準備し、ハンドラーを登録する
start()リスナー、購読、コンシューマーを開始する
ready()すべての Provider の起動後に、内部の準備を終える
shutdown()所有するリソースを停止し、それを待つ

サーバーのルートのファクトリーは、boot() のあと、start() の前に実行されます。サービスを解決できますが、コンシューマーが動いているとは考えられません。ブラウザーのホストは、アプリの起動が成功してから React をレンダリングします。

依存関係と所有

先にファクトリーを登録し、適切な段階で依存関係を解決します。必要な起動の順序は、偶然のファイル名に頼るのではなく、集約の入口で表します。

終了時に初めてサービスが作られることのないよう、後片付けでは resolveIfCreated() を使います。データベースなどの共有のリソースは所有者が閉じ、利用側は自分の購読、ハンドラー、ハンドルだけを解放します。

失敗と検証

後片付けは、初期化が途中までしか行われていない場合や、繰り返し呼び出された場合にも耐える必要があります。ホストが終了が完了したかどうかを判断できるよう、後片付けの失敗は握りつぶさずに報告してください。通常の起動、依存関係がない場合、初期化の失敗、作業中の終了を検証します。

ready() は内部の準備ができたことを表します。リスナー、プロキシ、データベースが使えるかどうかは、それぞれのヘルスチェックで確認する必要があります。完全な ServiceProvider の例 を参照してください。

インターフェースと実装

NocoBase ドキュメントアシスタント

NocoBase について何を知りたいですか?

質問は個別に回答され、過去の質問や回答は参照されません。必要な背景をすべて含めてください。