Zum Inhalt springen

Hooks

Rudel löst WordPress-Aktionen und Filter bei Sandbox-Lifecycle-Ereignissen aus. Der folgende Katalog zeigt, was Rudel::hooks() zurückgibt: 28 Aktionen und 5 Filter.

Beispiel

PHP
add_action(
    'rudel_after_environment_create',
    function ( \Rudel\Environment $environment, array $context ): void {
        error_log( 'Created Rudel environment ' . $environment->id );
    },
    10,
    2
);

Die meisten Aktionen before und failed erhalten ein Array $context. Bei Sandbox-Lifecycle-Hooks enthält es die environment (oder beim Erstellen die name, options und environments_dir); Aktionen failed erhalten außerdem den abgefangenen Throwable als $error.

Sandbox-Lifecycle-Aktionen

Aktion Argumente
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

Die drei replace_state-Aktionen gehören zu EnvironmentManager::replace_environment_state(), das von keinem Rudel-Befehl aufgerufen wird.

Snapshot-Aktionen

Aktion Argumente
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 umfasst environment, kind (snapshot), name und path. Jede davon wird auch unter einem snapshot-Alias ausgelöst, zum Beispiel rudel_after_snapshot_create. Bei Fehlern werden außerdem rudel_failed_recovery_point_{create|restore|delete} und rudel_failed_snapshot_{create|restore|delete} mit $context und dem Fehler ausgelöst. Diese Aliase sind nicht im Katalog aufgeführt.

Bereinigungsaktionen

Aktion Argumente
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 umfasst removed, skipped, errors und reasons.

Git-Push-Aktionen

Aktion Argumente
rudel_before_environment_push $context
rudel_after_environment_push $sha, $context
rudel_environment_push_failed $context, $error

Diese werden für Rudel::push() ausgelöst. $context umfasst environment, remote, message und subdir. Der Befehl wp rudel push pusht direkt und löst sie nicht aus.

Automatisierungsaktionen

Aktion Argumente
rudel_before_automation_cleanup $config
rudel_after_automation_cleanup $result, $config
rudel_after_automation_expiring_environments $result, $config

$config ist das vollständige Array rudel_config. Siehe Automatisierung.

Filter

Filter Argumente
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 kann die Optionen jedes Erstellungsaufrufs ändern, bevor Rudel sie verarbeitet. rudel_environment_clone_source filtert die Klon-Metadaten, die bei einer vom Host erstellten Sandbox gespeichert werden. rudel_environment_db_dropin_contents gilt nur für das db.php-Drop-in, das Multisite-Subsite-Umgebungen verwenden; Overlay-Sandboxes, die einzige Art, die aktuelle Versionen erstellen, erzeugen keines.

Filter dienen der Anpassung von Richtlinien, nicht dem Ersetzen des Speichermodells von Rudel. Laufzeitidentität, Tabellenpräfixe und Worktree-Metadaten bleiben DB-gestützter Zustand in Rudel.