
# Hookok

Rudel a sandbox életciklus-eseményei körüli WordPress műveleteket és szűrőket aktiválja. Az alábbi katalógust adja vissza a `Rudel::hooks()`: 28 műveletet és 5 szűrőt.

## Példa

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

A legtöbb `before` és `failed` művelet `$context` tömböt kap. A sandbox életciklus-hookoknál ez a `environment` értéket tartalmazza (vagy létrehozáskor a `name`, `options` és `environments_dir` értéket); a `failed` műveletek a `$error` néven elkapott `Throwable` értéket is megkapják.

## Sandbox-életciklus műveletei

| Művelet | Argumentumok |
|--------|-----------|
| `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` |

A három `replace_state` művelet a `EnvironmentManager::replace_environment_state()` része, amelyet egyetlen Rudel parancs sem hív meg.

## Pillanatkép-műveletek

| Művelet | Argumentumok |
|--------|-----------|
| `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` |

A `$context` tartalmazza a `environment`, `kind` (`snapshot`), `name` és `path` értékét. Mindegyik a `snapshot` alias alatt is lefut, például `rudel_after_snapshot_create`; hiba esetén pedig a rendszer meghívja a `rudel_failed_recovery_point_{create|restore|delete}` és `rudel_failed_snapshot_{create|restore|delete}` hookot a `$context` értékével és a hibával. Ezek az aliasok nem szerepelnek a katalógusban.

## Takarítási műveletek

| Művelet | Argumentumok |
|--------|-----------|
| `rudel_before_environment_cleanup` | `$options` |
| `rudel_after_environment_cleanup` | `$result`, `$options` |
| `rudel_before_environment_cleanup_merged` | `$options` |
| `rudel_after_environment_cleanup_merged` | `$result`, `$options` |

A `$result` tartalmazza a `removed`, `skipped`, `errors` és `reasons` értékét.

## Git feltöltési műveletei

| Művelet | Argumentumok |
|--------|-----------|
| `rudel_before_environment_push` | `$context` |
| `rudel_after_environment_push` | `$sha`, `$context` |
| `rudel_environment_push_failed` | `$context`, `$error` |

Ezek a `Rudel::push()` esetén futnak le. A `$context` tartalmazza a `environment`, `remote`, `message` és `subdir` értékét. A `wp rudel push` parancs közvetlenül tölt fel, és nem hívja meg ezeket.

## Automatizálási műveletek

| Művelet | Argumentumok |
|--------|-----------|
| `rudel_before_automation_cleanup` | `$config` |
| `rudel_after_automation_cleanup` | `$result`, `$config` |
| `rudel_after_automation_expiring_environments` | `$result`, `$config` |

A `$config` a teljes `rudel_config` tömb. Lásd: [Automatizálás](https://rudel.inline0.dev/hu/docs/features/automation).

## Szűrők

| Szűrő | Argumentumok |
|--------|-----------|
| `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` |

A `rudel_environment_create_options` módosíthatja bármely létrehozási hívás beállításait, mielőtt a Rudel feldolgozná őket. A `rudel_environment_clone_source` szűri a gazdagépről létrehozott sandbox klónjának metaadatait. A `rudel_environment_db_dropin_contents` csak arra a `db.php` beépülő modulra érvényes, amelyet a multisite alwebhelyes környezetek használnak; az átfedő sandboxok, amelyeket a jelenlegi verziók egyedüliként hoznak létre, soha nem generálnak ilyet.

A szűrők célja a szabályzat módosítása, nem pedig a Rudel tárolási modelljének lecserélése. A futásidejű identitás, a táblaprefixek és a worktree-metaadatok továbbra is az adatbázisban tárolt Rudel állapot részét képezik.
