Vai al contenuto

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

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