
# Erilliskäyttö

Itsenäisessä tilassa ulkoinen PHP-koodi voi tarkastella kohteen Rudel rekisteriä suoran MySQL-yhteyden avulla lataamatta kohdetta WordPress.

Se on tarkoitettu seuraaviin:

- hiekkalaatikoiden luettelointi
- hiekkalaatikon lataaminen tunnuksen perusteella
- elinkaaritietojen, kloonin metatietojen ja taulukoiden etuliitteiden lukeminen

Sitä ei ole tarkoitettu seuraaviin:

- hiekkalaatikoiden luominen
- hiekkalaatikoiden tuhoaminen
- siivouksen suorittaminen
- kohteen WordPress taulukoiden kloonaaminen
- reaaliaikaisten pyyntöjen reitittäminen

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` ja `cleanup_merged()` aiheuttavat `RuntimeException`-virheen itsenäisessä tilassa, koska ne tarvitsevat ajonaikaisia WordPress-palveluja.

## Alustaminen

Lataa kohteen Composer automaattinen lataaja ja välitä sitten kohteelle `Rudel::init()` arvo `Rudel\Connection`:

```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` ottaa kaksi muuta valinnaista argumenttia: taulukoiden etuliitteen ohituksen muodossa Rudel ja ajurin (`auto`, `mysqli` tai `pdo`). Jos ajuriargumenttia ei anneta, se käyttää ensin vakiota `RUDEL_DB_DRIVER` ja sitten arvoa `auto`, joka suosii kohdetta `pdo_mysql` kohteen WordPress ulkopuolella ja käyttää muutoin varalla arvoa `mysqli`.

## Tietueiden lukeminen

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

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

Itsenäisissä luvuissa käytetään samaa tietovarastokerrosta kuin kohteen WordPress ajonaikaisissa luvuissa. `Rudel::reset()` tyhjentää itsenäisen yhteyden.
