
# Įskiepiai

Rudel iškviečia WordPress veiksmus ir filtrus, susijusius su smėlio dėžės gyvavimo ciklo įvykiais. Toliau pateikiamą katalogą grąžina `Rudel::hooks()`: 28 veiksmai ir 5 filtrai.

## Pavyzdys

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

Dauguma `before` ir `failed` veiksmų gauna masyvą `$context`. Smėlio dėžės gyvavimo ciklo kabliukuose jame pateikiamas `environment` (arba kuriant – `name`, `options` ir `environments_dir`); `failed` veiksmai taip pat gauna užfiksuotą `Throwable` kaip `$error`.

## Smėlio dėžės gyvavimo ciklo veiksmai

| Veiksmas | Argumentai |
|--------|-----------|
| `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` |

Trys `replace_state` veiksmai priklauso `EnvironmentManager::replace_environment_state()`, kurio nei viena Rudel komanda neiškviečia.

## Momentinių kopijų veiksmai

| Veiksmas | Argumentai |
|--------|-----------|
| `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` apima `environment`, `kind` (`snapshot`), `name` ir `path`. Kiekvienas jų taip pat iškviečiamas su alternatyviu `snapshot` pavadinimu, pavyzdžiui, `rudel_after_snapshot_create`, o įvykus klaidoms iškviečiami `rudel_failed_recovery_point_{create|restore|delete}` ir `rudel_failed_snapshot_{create|restore|delete}`, perduodant `$context` ir klaidą. Šių alternatyvių pavadinimų kataloge nėra.

## Valymo veiksmai

| Veiksmas | Argumentai |
|--------|-----------|
| `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` apima `removed`, `skipped`, `errors` ir `reasons`.

## Git įkėlimo veiksmai

| Veiksmas | Argumentai |
|--------|-----------|
| `rudel_before_environment_push` | `$context` |
| `rudel_after_environment_push` | `$sha`, `$context` |
| `rudel_environment_push_failed` | `$context`, `$error` |

Jie iškviečiami vykdant `Rudel::push()`. `$context` apima `environment`, `remote`, `message` ir `subdir`. Komanda `wp rudel push` įkelia tiesiogiai ir jų neiškviečia.

## Automatizavimo veiksmai

| Veiksmas | Argumentai |
|--------|-----------|
| `rudel_before_automation_cleanup` | `$config` |
| `rudel_after_automation_cleanup` | `$result`, `$config` |
| `rudel_after_automation_expiring_environments` | `$result`, `$config` |

`$config` yra visas `rudel_config` masyvas. Žr. [Automatizavimas](https://rudel.inline0.dev/lt/docs/features/automation).

## Filtrai

| Filtras | Argumentai |
|--------|-----------|
| `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` gali pakeisti bet kurio kūrimo iškvietimo parinktis prieš Rudel jas apdorojant. `rudel_environment_clone_source` filtruoja klonavimo metaduomenis, įrašytus smėlio dėžėje, sukurtoje iš pagrindinio kompiuterio. `rudel_environment_db_dropin_contents` taikomas tik `db.php` papildomam failui, kurį naudoja kelių svetainių potinklių aplinkos; perdangos smėlio dėžėse, kurias kuria tik dabartinės versijos, toks failas niekada negeneruojamas.

Filtrai skirti politikai koreguoti, o ne pakeisti Rudel saugojimo modelį. Vykdymo aplinkos tapatybė, lentelių prefiksai ir darbinio medžio metaduomenys lieka Rudel būsena, saugoma DB.
