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