
# Uso autonomo

La modalità autonoma consente al codice PHP esterno di esaminare il registro di Rudel tramite una connessione diretta MySQL, senza caricare WordPress.

È pensata per:

- elencare le sandbox
- caricare una sandbox tramite ID
- leggere i metadati del ciclo di vita, i metadati del clone e i prefissi delle tabelle

Non è pensata per:

- creare sandbox
- distruggere sandbox
- eseguire la pulizia
- clonare tabelle WordPress
- instradare richieste attive

In modalità autonoma, `Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` e `cleanup_merged()` generano un’eccezione `RuntimeException` perché necessitano dei servizi di runtime WordPress.

## Inizializzazione

Caricate l’autoloader di Composer, quindi passate un `Rudel\Connection` a `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` accetta altri due argomenti facoltativi: una sovrascrittura del prefisso delle tabelle Rudel e un driver (`auto`, `mysqli` o `pdo`). Se non si specifica un driver, usa la costante `RUDEL_DB_DRIVER`, poi `auto`, che preferisce `pdo_mysql` al di fuori di WordPress e ripiega su `mysqli`.

## Leggere i record

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

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

Le letture in modalità autonoma usano lo stesso livello di repository delle letture di runtime di WordPress. `Rudel::reset()` chiude la connessione autonoma.
