フック
Rudelはサンドボックスのライフサイクルイベントに応じて、WordPressアクションとフィルターを発火させます。以下はRudel::hooks()が返す一覧で、アクション28件、フィルター5件です。
例
add_action(
'rudel_after_environment_create',
function ( \Rudel\Environment $environment, array $context ): void {
error_log( 'Created Rudel environment ' . $environment->id );
},
10,
2
);
ほとんどのbeforeおよびfailedアクションは、$context配列を受け取ります。サンドボックスのライフサイクルフックでは、この配列にenvironmentが格納されます(作成時はname、options、environments_dir)。failedアクションは捕捉したThrowableも$errorとして受け取ります。
サンドボックスのライフサイクルアクション
| アクション | 引数 |
|---|---|
rudel_before_environment_create |
$context |
rudel_after_environment_create |
$environment, $context |
rudel_environment_create_failed |
$context, $error |
rudel_before_environment_update |
$context |
rudel_after_environment_update |
$environment, $context |
rudel_environment_update_failed |
$context, $error |
rudel_before_environment_destroy |
$context |
rudel_after_environment_destroy |
$context |
rudel_environment_destroy_failed |
$context, $error |
rudel_before_environment_replace_state |
$context |
rudel_after_environment_replace_state |
$result, $context |
rudel_environment_replace_state_failed |
$context, $error |
3つのreplace_stateアクションはEnvironmentManager::replace_environment_state()に属し、どのRudelコマンドからも呼び出されません。
スナップショットアクション
| アクション | 引数 |
|---|---|
rudel_before_recovery_point_create |
$context |
rudel_after_recovery_point_create |
$context, $meta |
rudel_before_recovery_point_restore |
$context |
rudel_after_recovery_point_restore |
$context |
rudel_before_recovery_point_delete |
$context |
rudel_after_recovery_point_delete |
$context |
$contextにはenvironment、kind(snapshot)、name、pathが含まれます。それぞれsnapshotエイリアスでも発火します(例: rudel_after_snapshot_create)。失敗時にはrudel_failed_recovery_point_{create|restore|delete}とrudel_failed_snapshot_{create|restore|delete}が、$contextおよびエラーとともに発火します。これらのエイリアスは一覧には含まれていません。
クリーンアップアクション
| アクション | 引数 |
|---|---|
rudel_before_environment_cleanup |
$options |
rudel_after_environment_cleanup |
$result, $options |
rudel_before_environment_cleanup_merged |
$options |
rudel_after_environment_cleanup_merged |
$result, $options |
$resultにはremoved、skipped、errors、reasonsが含まれます。
Gitプッシュアクション
| アクション | 引数 |
|---|---|
rudel_before_environment_push |
$context |
rudel_after_environment_push |
$sha, $context |
rudel_environment_push_failed |
$context, $error |
これらはRudel::push()に対して発火します。$contextにはenvironment、remote、message、subdirが含まれます。wp rudel pushコマンドは直接プッシュするため、これらのフックは発火しません。
自動化アクション
| アクション | 引数 |
|---|---|
rudel_before_automation_cleanup |
$config |
rudel_after_automation_cleanup |
$result, $config |
rudel_after_automation_expiring_environments |
$result, $config |
$configはrudel_config配列全体です。自動化を参照してください。
フィルター
| フィルター | 引数 |
|---|---|
rudel_environment_create_options |
$options, $name, $manager |
rudel_environment_clone_source |
$clone_source, $host_url, $db_cloned, $themes_cloned, $plugins_cloned, $uploads_cloned, $extra |
rudel_environment_cleanup_options |
$options, $repository |
rudel_environment_cleanup_merged_options |
$options, $repository |
rudel_environment_db_dropin_contents |
$contents, $context |
rudel_environment_create_optionsは、Rudelが処理する前に、すべての作成呼び出しのオプションを変更できます。rudel_environment_clone_sourceはホストから作成したサンドボックスに保存されるクローンメタデータをフィルタリングします。rudel_environment_db_dropin_contentsは、マルチサイトのサブサイト環境で使われるdb.phpドロップインにのみ適用されます。現在のバージョンが作成するオーバーレイサンドボックスでは、ドロップインは生成されません。
フィルターはポリシーの調整を目的としており、Rudelのストレージモデルを置き換えるものではありません。実行時の識別情報、テーブルプレフィックス、ワークツリーメタデータは、引き続きDBに保存されるRudel状態です。