
# Uso independente

O modo independente permite que código externo de PHP inspecione o registro de Rudel por uma conexão direta de MySQL, sem carregar WordPress.

Destina-se a:

- listar sandboxes
- carregar um sandbox pelo ID
- ler metadados do ciclo de vida, metadados de clone e prefixos de tabela

Não se destina a:

- criar sandboxes
- destruir sandboxes
- executar a limpeza
- clonar tabelas de WordPress
- direcionar solicitações ativas

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` e `cleanup_merged()` lançam um `RuntimeException` no modo independente porque precisam dos serviços de execução de WordPress.

## Inicializar

Carregue o autoloader de Composer e depois passe um `Rudel\Connection` para `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` aceita mais dois argumentos opcionais: uma substituição do prefixo de tabela Rudel e um driver (`auto`, `mysqli` ou `pdo`). Sem um argumento de driver, usa a constante `RUDEL_DB_DRIVER` e depois `auto`, que prefere `pdo_mysql` fora de WordPress e recorre a `mysqli` como alternativa.

## Ler registros

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

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

As leituras independentes usam a mesma camada de repositório que as leituras de execução de WordPress. `Rudel::reset()` limpa a conexão independente.
