
# Άγκιστρα

Το Rudel ενεργοποιεί ενέργειες και φίλτρα WordPress γύρω από συμβάντα του κύκλου ζωής των sandbox. Ο παρακάτω κατάλογος είναι αυτός που επιστρέφει το `Rudel::hooks()`: 28 ενέργειες και 5 φίλτρα.

## Παράδειγμα

```php
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`. Στα hooks του κύκλου ζωής των sandbox περιέχει το `environment` (ή τα `name`, `options` και `environments_dir` κατά τη δημιουργία)· οι ενέργειες `failed` λαμβάνουν επίσης το σφάλμα που εντοπίστηκε ως `Throwable`, μέσω του `$error`.

## Ενέργειες κύκλου ζωής sandbox

| Ενέργεια | Ορίσματα |
|--------|-----------|
| `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.

## Ενέργειες snapshot

| Ενέργεια | Ορίσματα |
|--------|-----------|
| `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`. Δείτε την ενότητα [Αυτοματοποίηση](https://rudel.inline0.dev/el/docs/features/automation).

## Φίλτρα

| Φίλτρο | Ορίσματα |
|--------|-----------|
| `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` φιλτράρει τα μεταδεδομένα κλωνοποίησης που αποθηκεύονται σε ένα sandbox που δημιουργήθηκε από τον host. Το `rudel_environment_db_dropin_contents` εφαρμόζεται μόνο στο drop-in `db.php` που χρησιμοποιούν τα περιβάλλοντα multisite-subsite· τα overlay sandboxes, τα οποία είναι ο μόνος τύπος που δημιουργούν οι τρέχουσες εκδόσεις, δεν δημιουργούν ποτέ τέτοιο αρχείο.

Τα φίλτρα προορίζονται για προσαρμογή της πολιτικής, όχι για αντικατάσταση του μοντέλου αποθήκευσης του Rudel. Η ταυτότητα κατά τον χρόνο εκτέλεσης, τα προθέματα πινάκων και τα μεταδεδομένα worktree παραμένουν κατάσταση Rudel που βασίζεται στη βάση δεδομένων.
