
# Premiers pas

## Prérequis

- PHP 8.2+
- WordPress 6.4+
- MySQL ou MariaDB via la connexion normale à la base de données WordPress
- un `wp-config.php` accessible en écriture lorsque le plugin est activé

## Installation

Installez Rudel avec Composer et activez-le comme un plugin WordPress ordinaire.

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

Composer installe Rudel dans `vendor/rudel/rudel`, sauf si votre projet place les plugins WordPress dans `wp-content/plugins` (par exemple avec `composer/installers`). Le plugin doit se trouver dans le répertoire des plugins pour que `wp plugin activate rudel` le détecte.

## Effets de l'activation

L'activation crée les tables de Rudel, planifie l'événement de nettoyage horaire et ajoute une ligne d'amorçage à `wp-config.php`, juste au-dessus de la ligne qui charge `wp-settings.php`. Cette ligne permet à Rudel de sélectionner un environnement isolé avant la fin du chargement de WordPress. Rudel écrit d'abord une copie de sauvegarde nommée `wp-config.php.rudel-backup-{timestamp}`.

Il n'y a pas de commande d'installation distincte. Si `wp-config.php` n'est pas accessible en écriture, l'activation échoue. La désactivation supprime la ligne et l'événement planifié.

Vérifiez l'état d'exécution :

```bash
wp rudel status
```

`Bootstrap installed` devrait afficher `yes`.

## Créer un environnement isolé

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

Rudel affiche l'ID généré de l'environnement isolé, par exemple `alpha-3be7`. Il clone les tables WordPress de l'hôte sous un préfixe propre à l'environnement isolé, copie le thème dans son répertoire et enregistre la fiche dans la base de données WordPress de l'hôte. Les exemples ci-dessous utilisent `alpha-3be7` ; utilisez l'ID affiché par votre commande.

## Utiliser WP-CLI dans un environnement isolé

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

Sans `RUDEL_ENVIRONMENT`, WP-CLI communique avec l'hôte.

## Acheminer HTTP vers un environnement isolé

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

Pour une session de navigateur, définissez un cookie `rudel_environment` contenant l'ID de l'environnement isolé. Rudel lit le cookie, mais ne le définit ni ne l'efface jamais. Supprimez le cookie pour revenir à l'hôte.

L'environnement isolé s'exécute sur le URL de l'hôte. Sans l'en-tête ni le cookie, le même URL sert l'hôte.

## Étapes suivantes

- [Créer des environnements](https://rudel.inline0.dev/fr/docs/environments/creating)
- [Gérer les environnements](https://rudel.inline0.dev/fr/docs/environments/managing)
- [Isolation](https://rudel.inline0.dev/fr/docs/environments/isolation)
- [CLI](https://rudel.inline0.dev/fr/docs/cli)
