Hook
Rudel attiva azioni e filtri WordPress in corrispondenza degli eventi del ciclo di vita della sandbox. Il catalogo seguente mostra ciò che restituisce Rudel::hooks(): 28 azioni e 5 filtri.
Esempio
add_action(
'rudel_after_environment_create',
function ( \Rudel\Environment $environment, array $context ): void {
error_log( 'Created Rudel environment ' . $environment->id );
},
10,
2
);
La maggior parte delle azioni before e failed riceve un array $context. Per gli hook del ciclo di vita della sandbox, contiene environment (oppure name, options e environments_dir durante la creazione); anche le azioni failed ricevono l'Throwable intercettato come $error.
Azioni del ciclo di vita della sandbox
| Azione | Argomenti |
|---|---|
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 |
Le tre azioni replace_state appartengono a EnvironmentManager::replace_environment_state(), che nessun comando Rudel richiama.
Azioni degli snapshot
| Azione | Argomenti |
|---|---|
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 comprende environment, kind (snapshot), name e path. Ognuna di queste si attiva anche con un alias snapshot, ad esempio rudel_after_snapshot_create; in caso di errore si attivano rudel_failed_recovery_point_{create|restore|delete} e rudel_failed_snapshot_{create|restore|delete} con $context e l'errore. Questi alias non sono inclusi nel catalogo.
Azioni di pulizia
| Azione | Argomenti |
|---|---|
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 comprende removed, skipped, errors e reasons.
Azioni di push Git
| Azione | Argomenti |
|---|---|
rudel_before_environment_push |
$context |
rudel_after_environment_push |
$sha, $context |
rudel_environment_push_failed |
$context, $error |
Si attivano per Rudel::push(). $context comprende environment, remote, message e subdir. Il comando wp rudel push esegue il push direttamente e non li attiva.
Azioni di automazione
| Azione | Argomenti |
|---|---|
rudel_before_automation_cleanup |
$config |
rudel_after_automation_cleanup |
$result, $config |
rudel_after_automation_expiring_environments |
$result, $config |
$config è l'intero array rudel_config. Consultate Automazione.
Filtri
| Filtro | Argomenti |
|---|---|
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 può modificare le opzioni di qualsiasi chiamata di creazione prima che Rudel le applichi. rudel_environment_clone_source filtra i metadati del clone archiviati in una sandbox creata dall’host. rudel_environment_db_dropin_contents si applica solo al drop-in db.php usato negli ambienti multisito con sottositi; le sandbox overlay, l’unico tipo creato dalle versioni attuali, non ne generano mai uno.
I filtri servono ad adeguare le policy, non a sostituire il modello di archiviazione di Rudel. L’identità di runtime, i prefissi delle tabelle e i metadati delle worktree restano dati di stato di Rudel basati sul database.