跳转到正文

独立使用

独立模式允许外部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()会清除独立连接。