Хуки
Rudel запускает действия WordPress и фильтры при событиях жизненного цикла песочницы. В каталоге ниже перечислено то, что возвращает Rudel::hooks(): 28 действий и 5 фильтров.
Пример
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, хранящимся в базе данных.