Перейти к содержимому

Хуки

Rudel запускает действия WordPress и фильтры при событиях жизненного цикла песочницы. В каталоге ниже перечислено то, что возвращает Rudel::hooks(): 28 действий и 5 фильтров.

Пример

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

Большинство действий before и failed получают массив $context. Для хуков жизненного цикла песочницы он содержит environment (или name, options и environments_dir при создании); действия failed также получают перехваченную Throwable как $error.

Действия жизненного цикла песочницы

Действие Аргументы
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

Три действия replace_state относятся к EnvironmentManager::replace_environment_state(), которое не вызывается ни одной командой Rudel.

Действия со снимками

Действие Аргументы
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 содержит environment, kind (snapshot), name и path. Каждое из них также запускается под псевдонимом snapshot, например rudel_after_snapshot_create, а при сбоях запускаются rudel_failed_recovery_point_{create|restore|delete} и rudel_failed_snapshot_{create|restore|delete} с $context и ошибкой. Эти псевдонимы отсутствуют в каталоге.

Действия очистки

Действие Аргументы
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 содержит removed, skipped, errors и reasons.

Действия отправки изменений Git

Действие Аргументы
rudel_before_environment_push $context
rudel_after_environment_push $sha, $context
rudel_environment_push_failed $context, $error

Они запускаются для Rudel::push(). $context содержит environment, remote, message и subdir. Команда wp rudel push отправляет изменения напрямую и не запускает эти действия.

Действия автоматизации

Действие Аргументы
rudel_before_automation_cleanup $config
rudel_after_automation_cleanup $result, $config
rudel_after_automation_expiring_environments $result, $config

$config — это полный массив rudel_config. См. раздел Автоматизация.

Фильтры

Фильтр Аргументы
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 может изменять параметры любого вызова создания до того, как Rudel применит их. rudel_environment_clone_source фильтрует метаданные клона, хранящиеся в песочнице, созданной на основе хоста. rudel_environment_db_dropin_contents применяется только к подмене db.php, используемой в средах с подсайтами мультисайта; песочницы с наложением, единственный тип, создаваемый текущими версиями, ее никогда не генерируют.

Фильтры предназначены для настройки политик, а не для замены модели хранения Rudel. Идентификатор среды выполнения, префиксы таблиц и метаданные рабочего дерева остаются состоянием Rudel, хранящимся в базе данных.