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
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.