
# Eigenständige Nutzung

Im eigenständigen Modus kann externer PHP-Code die Registry von Rudel über eine direkte MySQL-Verbindung untersuchen, ohne WordPress zu laden.

Vorgesehen für:

- Sandboxes auflisten
- eine Sandbox anhand ihrer ID laden
- Lifecycle-Metadaten, Klon-Metadaten und Tabellenpräfixe lesen

Nicht vorgesehen für:

- Sandboxes erstellen
- Sandboxes löschen
- Bereinigungen ausführen
- WordPress-Tabellen klonen
- Live-Anfragen weiterleiten

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` und `cleanup_merged()` lösen im eigenständigen Modus einen `RuntimeException` aus, da sie Laufzeitdienste von WordPress benötigen.

## Initialisieren

Lade zuerst den Autoloader von Composer und übergib dann ein `Rudel\Connection` an `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` akzeptiert zwei weitere optionale Argumente: eine Überschreibung des Präfixes für Rudel-Tabellen und einen Treiber (`auto`, `mysqli` oder `pdo`). Ohne Treiberargument verwendet es die Konstante `RUDEL_DB_DRIVER`, dann `auto`, das außerhalb von WordPress `pdo_mysql` bevorzugt und andernfalls auf `mysqli` zurückfällt.

## Datensätze lesen

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

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

Eigenständige Lesezugriffe verwenden dieselbe Repository-Schicht wie Laufzeit-Lesezugriffe von WordPress. `Rudel::reset()` trennt die eigenständige Verbindung.
