
# Utilisation autonome

Le mode autonome permet au code externe PHP d’inspecter le registre de Rudel via une connexion MySQL directe, sans charger WordPress.

Ce mode est destiné à :

- lister les sandboxes
- charger une sandbox par ID
- lire les métadonnées du cycle de vie, les métadonnées de clonage et les préfixes de table

Il n’est pas destiné à :

- créer des sandboxes
- détruire des sandboxes
- exécuter le nettoyage
- cloner des tables WordPress
- acheminer des requêtes en direct

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` et `cleanup_merged()` lèvent une exception `RuntimeException` en mode autonome, car elles nécessitent les services d’exécution WordPress.

## Initialisation

Chargez l’autoloader de Composer, puis transmettez un `Rudel\Connection` à `Rudel::init()` :

```php
use Rudel\Connection;
use Rudel\Rudel;

require __DIR__ . '/vendor/autoload.php';

Rudel::init(
    new Connection(
        '127.0.0.1',  // host, in DB_HOST format (host, host:port or a socket path)
        'wordpress',  // database
        'root',       // user
        'root',       // password
        'wp_'         // WordPress table prefix
    ),
    [ 'environments_dir' => '/var/www/html/wp-content/rudel-environments' ]
);
```

`Connection` accepte deux arguments facultatifs supplémentaires : une surcharge du préfixe de table Rudel et un pilote (`auto`, `mysqli` ou `pdo`). Sans argument de pilote, il utilise la constante `RUDEL_DB_DRIVER`, puis `auto`, qui privilégie `pdo_mysql` en dehors de WordPress et se rabat sur `mysqli`.

## Lire des enregistrements

```php
foreach ( Rudel::all() as $environment ) {
    echo $environment->id . ' ' . $environment->get_table_prefix() . "\n";
}

$environment = Rudel::get( 'alpha-3be7' );
```

Les lectures autonomes utilisent la même couche de dépôt que les lectures d'exécution de WordPress. `Rudel::reset()` efface la connexion autonome.
