
# Автономное использование

Автономный режим позволяет внешнему коду PHP просматривать реестр Rudel с помощью прямого подключения MySQL без загрузки WordPress.

Он предназначен для:

- просмотра списка песочниц
- загрузки одной песочницы по идентификатору
- чтения метаданных жизненного цикла, метаданных клона и префиксов таблиц

Он не предназначен для:

- создания песочниц
- уничтожения песочниц
- запуска очистки
- клонирования таблиц WordPress
- перенаправления работающих запросов

`Rudel::create()`, `create_from_git()`, `destroy()`, `cleanup()` и `cleanup_merged()` вызывают исключение `RuntimeException` в автономном режиме, поскольку им требуются службы среды выполнения WordPress.

## Инициализация

Загрузите автозагрузчик Composer, затем передайте `Rudel\Connection` в `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` принимает еще два необязательных аргумента: переопределение префикса таблиц Rudel и драйвер (`auto`, `mysqli` или `pdo`). Если драйвер не указан, используется константа `RUDEL_DB_DRIVER`, затем `auto`, который предпочитает `pdo_mysql` вне WordPress и в противном случае использует `mysqli`.

## Чтение записей

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

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

Для автономного чтения используется тот же уровень репозитория, что и для чтения среды выполнения WordPress. `Rudel::reset()` сбрасывает автономное подключение.
