
# Aan de slag

## Vereisten

- PHP 8.2+
- WordPress 6.4+
- MySQL of MariaDB via de normale WordPress-databaseverbinding
- een beschrijfbare `wp-config.php` wanneer de plug-in wordt geactiveerd

## Installeren

Installeer Rudel met Composer en activeer het zoals een normale WordPress-plug-in.

```bash
composer require rudel/rudel
wp plugin activate rudel
```

Composer installeert Rudel in `vendor/rudel/rudel`, tenzij je project WordPress-plug-ins aan `wp-content/plugins` koppelt (bijvoorbeeld met `composer/installers`). De plug-in moet in de plug-insmap staan zodat `wp plugin activate rudel` deze kan vinden.

## Wat activering doet

Activering maakt de tabellen van Rudel aan, plant de uurlijkse opschoningsgebeurtenis in en voegt één bootstrapregel toe aan `wp-config.php`, direct boven de regel die `wp-settings.php` laadt. Daardoor kan Rudel een sandbox selecteren voordat WordPress klaar is met laden. Rudel maakt eerst een reservekopie met de naam `wp-config.php.rudel-backup-{timestamp}`.

Er is geen aparte installatieopdracht. Als `wp-config.php` niet beschrijfbaar is, mislukt de activering. Bij deactivering worden de regel en de geplande gebeurtenis verwijderd.

Controleer de runtimestatus:

```bash
wp rudel status
```

`Bootstrap installed` moet `yes` aangeven.

## Een sandbox aanmaken

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

Rudel toont de gegenereerde sandbox-ID, bijvoorbeeld `alpha-3be7`. De opdracht kloont de host-WordPress-tabellen naar een tabelprefix voor de sandbox, kopieert het thema naar de sandboxmap en slaat de record op in de host-WordPress-database. In de voorbeelden hieronder wordt `alpha-3be7` gebruikt; gebruik de ID die je opdracht heeft getoond.

## WP-CLI in een sandbox gebruiken

```bash
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
```

Zonder `RUDEL_ENVIRONMENT` maakt WP-CLI verbinding met de host.

## HTTP naar een sandbox routeren

```bash
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
```

Stel voor een browsersessie een `rudel_environment`-cookie in met de sandbox-ID. Rudel leest de cookie, maar stelt deze nooit in of wist deze nooit. Verwijder de cookie om terug te keren naar de host.

De sandbox draait op de host-URL. Zonder de header of cookie serveert dezelfde URL de host.

## Volgende stappen

- [Omgevingen aanmaken](https://rudel.inline0.dev/nl/docs/environments/creating)
- [Omgevingen beheren](https://rudel.inline0.dev/nl/docs/environments/managing)
- [Isolatie](https://rudel.inline0.dev/nl/docs/environments/isolation)
- [CLI](https://rudel.inline0.dev/nl/docs/cli)
