
# الاستخدام المستقل

يتيح الوضع المستقل للتعليمات البرمجية الخارجية 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()` الاتصال المستقل.
