Preskočiť na obsah

Hooky

Rudel spúšťa akcie a filtre WordPress pri udalostiach životného cyklu sandboxu. Katalóg nižšie zodpovedá výstupu Rudel::hooks(): 28 akcií a 5 filtrov.

Prí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äčšina akcií before a failed prijíma pole $context. Pri hookoch životného cyklu sandboxu obsahuje environment (alebo pri vytvorení name, options a environments_dir); akcie failed prijímajú aj zachytenú Throwable ako $error.

Akcie životného cyklu sandboxu

Akcia 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

Tri akcie replace_state patria k EnvironmentManager::replace_environment_state(), ktoré nevolá žiadny príkaz Rudel.

Akcie snímok

Akcia 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 sa spúšťa aj pod aliasom snapshot, napríklad rudel_after_snapshot_create, a pri zlyhaniach sa spúšťajú rudel_failed_recovery_point_{create|restore|delete} a rudel_failed_snapshot_{create|restore|delete} s $context a chybou. Tieto aliasy nie sú v katalógu.

Akcie čistenia

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

Akcie odosielania zmien Git

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

Tieto hooky sa spúšťajú pre Rudel::push(). $context obsahuje environment, remote, message a subdir. Príkaz wp rudel push odosiela zmeny priamo a tieto hooky nespúšťa.

Automatizačné akcie

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

$config je úplné pole rudel_config. Pozrite si časť Automatizácia.

Filtre

Filter 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 zmeniť možnosti každého volania create predtým, než s nimi Rudel začne pracovať. rudel_environment_clone_source filtruje metadáta klonu uložené v sandboxe vytvorenom z hostiteľa. rudel_environment_db_dropin_contents sa vzťahuje len na drop-in db.php, ktorý používajú prostredia podstránok Multisite; overlay sandboxy, ktoré vytvárajú iba aktuálne verzie, ho nikdy nevygenerujú.

Filtre slúžia na úpravu pravidiel, nie na nahradenie modelu ukladania Rudel. Identita runtime, prefixy tabuliek a metadáta pracovných stromov zostávajú stavom Rudel uloženým v DB.