
# 独立使用

独立模式允许外部PHP代码通过直接MySQL连接检查Rudel的注册表，无需加载WordPress。

适用于：

- 列出沙盒
- 按 ID 加载单个沙盒
- 读取生命周期元数据、克隆元数据和表前缀

不适用于：

- 创建沙盒
- 销毁沙盒
- 运行清理
- 克隆WordPress表
- 路由实时请求

`Rudel::create()`、`create_from_git()`、`destroy()`、`cleanup()`和`cleanup_merged()`在独立模式下会抛出`RuntimeException`，因为它们需要WordPress运行时服务。

## 初始化

加载Composer的自动加载器，然后向`Rudel::init()`传入一个`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`还接受两个可选参数：Rudel表前缀覆盖值，以及驱动程序（`auto`、`mysqli`或`pdo`）。未传入驱动程序参数时，它会使用`RUDEL_DB_DRIVER`常量，然后使用`auto`；后者在WordPress之外优先选择`pdo_mysql`，并在不可用时回退到`mysqli`。

## 读取记录

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

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

独立模式读取与WordPress运行时读取使用相同的存储库层。`Rudel::reset()`会清除独立连接。
