
# Uso independiente

El modo independiente permite que el código externo PHP inspeccione el registro de Rudel mediante una conexión directa a MySQL, sin cargar WordPress.

Está pensado para:

- listar entornos aislados
- cargar un entorno aislado por ID
- leer metadatos del ciclo de vida, metadatos de clonación y prefijos de tablas

No está pensado para:

- crear entornos aislados
- destruir entornos aislados
- ejecutar la limpieza
- clonar tablas WordPress
- dirigir solicitudes en vivo

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` y `cleanup_merged()` lanzan una excepción `RuntimeException` en modo independiente porque necesitan los servicios de tiempo de ejecución de WordPress.

## Inicializar

Cargue el autocargador de Composer y luego pase 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` acepta dos argumentos opcionales más: una anulación del prefijo de tablas Rudel y un controlador (`auto`, `mysqli` o `pdo`). Si no se especifica un controlador, usa la constante `RUDEL_DB_DRIVER` y, después, `auto`, que prefiere `pdo_mysql` fuera de WordPress y recurre a `mysqli`.

## Leer registros

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

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

Las lecturas independientes usan la misma capa de repositorio que las lecturas en tiempo de ejecución de WordPress. `Rudel::reset()` borra la conexión independiente.
