Přejít k obsahu

Hooky

Rudel spouští akce a filtry WordPress při událostech životního cyklu sandboxu. Níže uvedený katalog odpovídá výstupu Rudel::hooks(): 28 akcí a 5 filtrů.

Příklad

PHP
add_action(
    'rudel_after_environment_create',
    function ( \Rudel\Environment $environment, array $context ): void {
        error_log( 'Created Rudel environment ' . $environment->id );
    },
    10,
    2
);

Většina akcí before a failed přijímá pole $context. U háčků životního cyklu sandboxu obsahuje environment (nebo při vytvoření hodnoty name, options a environments_dir); akce failed navíc přijímají zachycenou Throwable jako $error.

Akce životního cyklu sandboxu

Akce Argumenty
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

Tři akce replace_state patří k EnvironmentManager::replace_environment_state(), které nevolá žádný příkaz Rudel.

Akce snímků

Akce Argumenty
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 obsahuje environment, kind (snapshot), name a path. Každá z nich se spouští také pod aliasem snapshot, například rudel_after_snapshot_create; při selhání se spustí rudel_failed_recovery_point_{create|restore|delete} a rudel_failed_snapshot_{create|restore|delete} s hodnotami $context a chybou. Tyto aliasy v katalogu nejsou.

Akce úklidu

Akce Argumenty
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 obsahuje removed, skipped, errors a reasons.

Akce odesílání Git

Akce Argumenty
rudel_before_environment_push $context
rudel_after_environment_push $sha, $context
rudel_environment_push_failed $context, $error

Tyto události se spouštějí pro Rudel::push(). $context obsahuje environment, remote, message a subdir. Příkaz wp rudel push provede přímé odeslání a tyto události nespouští.

Akce automatizace

Akce Argumenty
rudel_before_automation_cleanup $config
rudel_after_automation_cleanup $result, $config
rudel_after_automation_expiring_environments $result, $config

$config je celé pole rudel_config. Viz Automation.

Filtry

Filtr Argumenty
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 může změnit možnosti libovolného volání create ještě předtím, než na ně Rudel začne působit. Filtr rudel_environment_clone_source upravuje metadata klonu uložená v sandboxu vytvořeném z hostitele. rudel_environment_db_dropin_contents se vztahuje pouze na drop-in db.php, který používají prostředí s podsítem multisite; overlay sandboxy, které vytvářejí pouze současné verze, jej nikdy negenerují.

Filtry slouží k úpravě zásad, nikoli k nahrazení modelu úložiště Rudel. Identita běhového prostředí, prefixy tabulek a metadata worktree zůstávají stavem Rudel uloženým v databázi.