
# Kancalar

Rudel, yalıtılmış ortamın yaşam döngüsü olayları çevresinde WordPress eylemlerini ve filtrelerini tetikler. Aşağıdaki katalogda `Rudel::hooks()` tarafından döndürülenler yer alır: 28 eylem ve 5 filtre.

## Örnek

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

Çoğu `before` ve `failed` eylemi bir `$context` dizisi alır. Yalıtılmış ortam yaşam döngüsü kancalarında bu dizi `environment` değerini (oluşturma sırasında ise `name`, `options` ve `environments_dir` değerlerini) içerir; `failed` eylemleri ayrıca yakalanan `Throwable` değerini `$error` olarak alır.

## Yalıtılmış ortam yaşam döngüsü eylemleri

| Eylem | Bağımsız değişkenler |
|--------|-----------|
| `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` eylemi `EnvironmentManager::replace_environment_state()` öğesine aittir; hiçbir Rudel komutu bunları çağırmaz.

## Anlık görüntü eylemleri

| Eylem | Bağımsız Değişkenler |
|--------|-----------|
| `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` ve `path` içerir. Bunların her biri ayrıca `snapshot` takma adıyla da çalışır; örneğin `rudel_after_snapshot_create`. Hatalar `rudel_failed_recovery_point_{create|restore|delete}` ve `rudel_failed_snapshot_{create|restore|delete}` ile `$context`'ı ve hatayı iletir. Bu takma adlar katalogda yer almaz.

## Temizleme eylemleri

| Eylem | Bağımsız Değişkenler |
|--------|-----------|
| `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` ve `errors` ile `reasons` içerir.

## Git push eylemleri

| Eylem | Bağımsız Değişkenler |
|--------|-----------|
| `rudel_before_environment_push` | `$context` |
| `rudel_after_environment_push` | `$sha`, `$context` |
| `rudel_environment_push_failed` | `$context`, `$error` |

Bunlar `Rudel::push()` için çalışır. `$context`, `environment`, `remote`, `message` ve `subdir` içerir. `wp rudel push` komutu doğrudan push işlemi yapar ve bunları çalıştırmaz.

## Otomasyon eylemleri

| Eylem | Bağımsız Değişkenler |
|--------|-----------|
| `rudel_before_automation_cleanup` | `$config` |
| `rudel_after_automation_cleanup` | `$result`, `$config` |
| `rudel_after_automation_expiring_environments` | `$result`, `$config` |

`$config`, `rudel_config` dizisinin tamamıdır. [Otomasyon](https://rudel.inline0.dev/tr/docs/features/automation) bölümüne bakın.

## Filtreler

| Filtre | Bağımsız Değişkenler |
|--------|-----------|
| `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`, herhangi bir oluşturma çağrısının seçeneklerini Rudel bunları işlemeden önce değiştirebilir. `rudel_environment_clone_source`, ana makineden oluşturulan bir korumalı alanda saklanan klon meta verilerini filtreler. `rudel_environment_db_dropin_contents` yalnızca çoklu site alt site ortamlarının kullandığı `db.php` drop-in'i için geçerlidir; mevcut sürümlerin oluşturduğu tek tür olan kaplama korumalı alanları bunu hiçbir zaman oluşturmaz.

Filtreler, Rudel depolama modelini değiştirmek için değil, politikayı ayarlamak için kullanılır. Çalışma zamanı kimliği, tablo önekleri ve çalışma ağacı meta verileri DB destekli Rudel durumu olarak kalır.
