
# Zelfstandig gebruik

In de zelfstandige modus kan externe PHP-code het register van Rudel inspecteren via een directe MySQL-verbinding, zonder WordPress te laden.

Bedoeld voor:

- sandboxes weergeven
- één sandbox laden op basis van ID
- levenscyclusmetadata, kloonmetadata en tabelprefixen lezen

Niet bedoeld voor:

- sandboxes aanmaken
- sandboxes vernietigen
- opschoning uitvoeren
- WordPress-tabellen klonen
- liveverzoeken routeren

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` en `cleanup_merged()` geven een `RuntimeException`-fout in de zelfstandige modus, omdat ze WordPress-runtimeservices nodig hebben.

## Initialiseren

Laad de autoloader van Composer en geef vervolgens een `Rudel\Connection` door aan `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` accepteert nog twee optionele argumenten: een overschrijving van de Rudel-tabelprefix en een driver (`auto`, `mysqli` of `pdo`). Zonder driverargument gebruikt het de constante `RUDEL_DB_DRIVER`, daarna `auto`, die buiten WordPress de voorkeur geeft aan `pdo_mysql` en terugvalt op `mysqli`.

## Records lezen

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

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

Zelfstandige leesbewerkingen gebruiken dezelfde repositorylaag als runtime-leesbewerkingen van WordPress. `Rudel::reset()` wist de zelfstandige verbinding.
