Hooks
Rudel déclenche les actions et filtres WordPress autour des événements du cycle de vie des sandboxes. Le catalogue ci-dessous correspond à ce que renvoie Rudel::hooks() : 28 actions et 5 filtres.
Exemple
add_action(
'rudel_after_environment_create',
function ( \Rudel\Environment $environment, array $context ): void {
error_log( 'Created Rudel environment ' . $environment->id );
},
10,
2
);
La plupart des actions before et failed reçoivent un tableau $context. Pour les hooks du cycle de vie d’une sandbox, il contient le environment (ou le name, le options et le environments_dir lors de la création) ; les actions failed reçoivent également l’Throwable interceptée sous la forme de $error.
Actions du cycle de vie des sandboxes
| Action | Arguments |
|---|---|
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 |
Les trois actions replace_state appartiennent à EnvironmentManager::replace_environment_state(), qu’aucune commande Rudel n’appelle.
Actions de snapshot
| Action | Arguments |
|---|---|
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 contient environment, kind (snapshot), name et path. Chacun déclenche également un alias snapshot, par exemple rudel_after_snapshot_create ; les échecs déclenchent rudel_failed_recovery_point_{create|restore|delete} et rudel_failed_snapshot_{create|restore|delete} avec $context et l’erreur. Ces alias ne figurent pas dans le catalogue.
Actions de nettoyage
| Action | Arguments |
|---|---|
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 contient removed, skipped, errors et reasons.
Actions d’envoi Git
| Action | Arguments |
|---|---|
rudel_before_environment_push |
$context |
rudel_after_environment_push |
$sha, $context |
rudel_environment_push_failed |
$context, $error |
Ces actions se déclenchent pour Rudel::push(). $context contient environment, remote, message et subdir. La commande wp rudel push envoie directement les modifications et ne les déclenche pas.
Actions d’automatisation
| Action | Arguments |
|---|---|
rudel_before_automation_cleanup |
$config |
rudel_after_automation_cleanup |
$result, $config |
rudel_after_automation_expiring_environments |
$result, $config |
$config est le tableau rudel_config complet. Consultez Automatisation.
Filtres
| Filtre | Arguments |
|---|---|
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 peut modifier les options de tout appel de création avant que Rudel ne les traite. rudel_environment_clone_source filtre les métadonnées de clonage enregistrées dans une sandbox créée à partir de l’hôte. rudel_environment_db_dropin_contents s’applique uniquement au drop-in db.php utilisé par les environnements multisite avec sous-sites ; les sandboxes en overlay, seul type créé par les versions actuelles, n’en génèrent jamais.
Les filtres servent à ajuster les règles, pas à remplacer le modèle de stockage de Rudel. L’identité d’exécution, les préfixes de tables et les métadonnées des worktrees restent des données Rudel stockées en base de données.