
# Selvstændig brug

Selvstændig tilstand lader ekstern PHP-kode undersøge Rudels register via en direkte MySQL-forbindelse uden at indlæse WordPress.

Den er beregnet til:

- at vise sandboxes
- at indlæse en sandbox efter id
- at læse livscyklusmetadata, klonmetadata og tabelpræfikser

Den er ikke beregnet til:

- at oprette sandboxes
- at ødelægge sandboxes
- at køre oprydning
- at klone WordPress-tabeller
- at dirigere liveanmodninger

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` og `cleanup_merged()` kaster en `RuntimeException` i selvstændig tilstand, fordi de kræver WordPress-runtimetjenester.

## Initialisering

Indlæs Composers autoloader, og send derefter en `Rudel\Connection` til `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` tager yderligere to valgfrie argumenter: en tilsidesættelse af Rudel-tabelpræfikset og en driver (`auto`, `mysqli` eller `pdo`). Uden et driverargument bruger den først konstanten `RUDEL_DB_DRIVER` og derefter `auto`, som foretrækker `pdo_mysql` uden for WordPress og falder tilbage på `mysqli`.

## Læs poster

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

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

Selvstændige læsninger bruger det samme repository-lag som WordPresss runtime-læsninger. `Rudel::reset()` rydder den selvstændige forbindelse.
