コンテンツへスキップ

フック

Rudelはサンドボックスのライフサイクルイベントに応じて、WordPressアクションとフィルターを発火させます。以下はRudel::hooks()が返す一覧で、アクション28件、フィルター5件です。

例

PHP
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状態です。