Ganchos
Rudel aciona ações WordPress e filtros em torno dos eventos do ciclo de vida dos ambientes isolados. O catálogo abaixo corresponde ao que Rudel::hooks() retorna: 28 ações e 5 filtros.
Exemplo
add_action(
'rudel_after_environment_create',
function ( \Rudel\Environment $environment, array $context ): void {
error_log( 'Created Rudel environment ' . $environment->id );
},
10,
2
);
A maioria das ações before e failed recebe um array $context. Para os hooks do ciclo de vida do ambiente isolado, ele contém o environment (ou o name, options e environments_dir na criação); as ações failed também recebem o Throwable capturado como $error.
Ações do ciclo de vida do ambiente isolado
| Ação | Argumentos |
|---|---|
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 |
As três ações replace_state pertencem a EnvironmentManager::replace_environment_state(), que nenhum comando Rudel chama.
Ações de snapshot
| Ação | Argumentos |
|---|---|
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 contém environment, kind (snapshot), name e path. Cada uma também é acionada por um alias snapshot, como rudel_after_snapshot_create, e as falhas acionam rudel_failed_recovery_point_{create|restore|delete} e rudel_failed_snapshot_{create|restore|delete} com $context e o erro. Esses aliases não estão no catálogo.
Ações de limpeza
| Ação | Argumentos |
|---|---|
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 contém removed, skipped, errors e reasons.
Ações de push Git
| Ação | Argumentos |
|---|---|
rudel_before_environment_push |
$context |
rudel_after_environment_push |
$sha, $context |
rudel_environment_push_failed |
$context, $error |
Esses hooks são acionados para Rudel::push(). $context contém environment, remote, message e subdir. O comando wp rudel push faz push diretamente e não os aciona.
Ações de automação
| Ação | Argumentos |
|---|---|
rudel_before_automation_cleanup |
$config |
rudel_after_automation_cleanup |
$result, $config |
rudel_after_automation_expiring_environments |
$result, $config |
$config é o array rudel_config completo. Consulte Automação.
Filtros
| Filtro | Argumentos |
|---|---|
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 pode alterar as opções de qualquer chamada create antes que Rudel as processe. rudel_environment_clone_source filtra os metadados de clone armazenados em um sandbox criado a partir do host. rudel_environment_db_dropin_contents aplica-se apenas ao drop-in db.php usado por ambientes de subsite em multisite; sandboxes de sobreposição, o único tipo criado pelas versões atuais, nunca geram um.
Os filtros servem para ajustar políticas, não para substituir o modelo de armazenamento de Rudel. A identidade em tempo de execução, os prefixos de tabela e os metadados de worktree continuam sendo estado de Rudel armazenado no DB.