API
Rudel\Rudel واجهة ثابتة. كل طريقة في هذه الصفحة هي طريقة عامة ثابتة في ذلك الصنف.
use Rudel\Rudel;
if ( Rudel::is_sandbox() ) {
error_log( 'Running in sandbox ' . Rudel::id() );
}
تتطلب طرق دورة الحياة التي تستنسخ الجداول أو تحذفها (create()، create_from_git()، destroy()، cleanup()، cleanup_merged()) طلب WordPress نشطًا مع $wpdb. وتُصدر RuntimeException إذا استُدعيت بعد Rudel::init() خارج WordPress. راجع الاستخدام المستقل.
سياق وقت التشغيل
تصف هذه الطرق الطلب الحالي. وخارج بيئة العزل، تُرجع false أو null.
| الطريقة | القيمة المُعادة |
|---|---|
is_sandbox(): bool |
true عندما يعمل الطلب الحالي داخل بيئة عزل |
id(): ?string |
معرّف بيئة العزل الحالية |
path(): ?string |
دليل بيئة العزل الحالية |
engine(): ?string |
overlay داخل بيئة عزل |
table_prefix(): ?string |
بادئة جداول بيئة العزل، مثل wp_b65338d_ |
url(): ?string |
URL الخاصة ببيئة العزل؛ وتتشارك بيئات العزل المتراكبة URL المضيف |
exit_url(): string |
URL المضيف |
is_email_disabled(): bool |
true عند حظر البريد الصادر للطلب |
log_path(): ?string |
{sandbox directory}/debug.log |
version(): ?string |
إصدار Rudel المثبّت |
cli_command(): string |
أمر WP-CLI الأساسي، rudel ما لم يُحدّد RUDEL_CLI_COMMAND |
Rudel::context(): array
تُرجع كل ما سبق في مصفوفة واحدة:
[
'is_sandbox' => true,
'id' => 'alpha-3be7',
'path' => '/var/www/html/wp-content/rudel-environments/alpha-3be7',
'engine' => 'overlay',
'table_prefix' => 'wp_b65338d_',
'url' => 'http://localhost/',
'exit_url' => 'http://localhost/',
'email_disabled' => true,
'log_path' => '/var/www/html/wp-content/rudel-environments/alpha-3be7/debug.log',
'version' => '0.10.0',
'cli_command' => 'rudel',
]
Rudel::status(): array
تُرجع ملخص وقت التشغيل نفسه الذي تُرجعه wp rudel status في مصفوفة: حالة التهيئة، وبيئة العزل الحالية، ودليل بيئات العزل وعددها، وقيم rudel_config، وما إذا كانت الأتمتة مجدولة.
سجلات بيئات العزل
تُرجع بيئات العزل ككائنات Rudel\Environment. تشمل الخصائص المفيدة للقراءة فقط id وname وpath وcreated_at وstatus وtemplate وowner وlabels وpurpose وexpires_at وlast_used_at وtheme_slug وtable_prefix وclone_source. وتشمل الطرق is_protected() وget_url() وget_table_prefix() وget_size() وto_array().
Rudel::all(): array
تُرجع كل بيئات العزل كمصفوفة من كائنات Environment. ولا تقبل أي عوامل تصفية.
foreach ( Rudel::all() as $sandbox ) {
echo $sandbox->id . ' ' . $sandbox->status . "\n";
}
Rudel::get( string $id ): ?Environment
تُحمّل بيئة عزل واحدة حسب المعرّف، أو تُرجع null.
$sandbox = Rudel::get( 'alpha-3be7' );
Rudel::environments_dir(): string
تُرجع الدليل الذي يحتوي على أدلة بيئات العزل.
دورة الحياة
Rudel::create( string $name, array $options = [] ): Environment
تنشئ بيئة عزل وتُرجعها. يُنشأ المعرّف من الاسم متبوعًا بأربعة أحرف سداسية عشرية.
$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );
الخيارات:
| المفتاح | المعنى |
|---|---|
theme |
معرّف القالب المراد نسخه إلى بيئة العزل؛ والافتراضي هو القالب النشط للمضيف |
clone_from |
معرّف بيئة عزل موجودة لاستنساخها بدلًا من المضيف |
owner، purpose |
بيانات وصفية نصية حرة |
labels |
مصفوفة أو سلسلة مفصولة بفواصل |
protected |
true لاستبعاد بيئة العزل من التنظيف |
ttl_days |
مدة انتهاء الصلاحية من وقت الإنشاء |
expires_at |
طابع زمني صريح لانتهاء الصلاحية |
template |
تسمية مخزنة في السجل؛ ولا تحمّل قالبًا محفوظًا |
site_options |
أسماء الخيارات والقيم المفردة المكتوبة في جدول خيارات بيئة العزل |
skip_limits |
true لتجاوز max_sandboxes وmax_disk_mb |
Rudel::create_from_git( string $remote_url, array $options = [] ): array
تنشئ بيئة عزل، ثم تستنسخ $remote_url فيها. تقبل خيارات create() إضافة إلى name (الافتراضي هو اسم المستودع) وtype (theme أو plugin). تُرجع [ 'environment' => Environment, 'git' => [...] ]. لا يؤدي فشل الاستنساخ إلى التراجع عن إنشاء بيئة العزل؛ ويُعاد الخطأ في git.error. راجع Git.
Rudel::update( string $id, array $changes ): Environment
تحدّث البيانات الوصفية لدورة الحياة وتُرجع سجل بيئة العزل المحدّث. تشمل المفاتيح المقبولة owner وlabels وpurpose وprotected وttl_days (من الآن) وexpires_at وclear_expiry وname وsite_options.
Rudel::update( 'alpha-3be7', [ 'protected' => true, 'ttl_days' => 3 ] );
Rudel::destroy( string $id ): bool
تحذف جداول بيئة العزل، وتزيل دليلها وأشجار العمل المرتبطة بها، وتحذف سجلها. تُرجع false إذا لم يكن المعرّف موجودًا. لا تتحقق من الحماية؛ إذ تُدمّر بيئات العزل المحمية أيضًا.
Rudel::cleanup( array $options = [] ): array
تطبّق سياسة انتهاء الصلاحية والعمر والخمول. الخيارات: dry_run (قيمة منطقية) وmax_age_days وmax_idle_days (تتجاوز rudel_config عندما لا تساوي صفرًا). تُرجع removed وskipped وerrors وreasons (المعرّف إلى expired أو age أو idle أو protected). راجع التنظيف.
Rudel::cleanup_merged( array $options = [] ): array
تزيل بيئات العزل التي دُمجت فروع أشجار عمل Git المرتبطة بها في الفرع الافتراضي للمستودع. الخيار: dry_run.
Rudel::touch_current_environment(): void
تسجّل النشاط (last_used_at) لبيئة العزل الحالية. تستدعي Rudel هذه الطريقة في كل طلب لبيئة عزل.
السجلات
Rudel::read_log( string $id, int $lines = 50 ): array
تُرجع الأسطر الأخيرة من debug.log الخاص ببيئة العزل كـ path وexists وempty وtotal_lines وlines.
Rudel::clear_log( string $id ): array
تُفرغ debug.log الخاص ببيئة العزل وتُرجع path وexisted وcleared.
اللقطات
Rudel::snapshot( string $id, string $name ): array
تنشئ لقطة وتُرجع بياناتها الوصفية (name وcreated_at وsandbox_id).
Rudel::restore( string $id, string $name ): void
تستعيد لقطة. عند استخدام إعداد auto_snapshot_before_restore الافتراضي، تحفظ Rudel لقطة pre-restore-... أولًا.
Rudel::snapshots( string $id ): array
تعرض بيانات اللقطات الوصفية، بدءًا بالأحدث. راجع اللقطات.
القوالب
Rudel::save_template( string $id, string $name, string $description = '' ): arrayRudel::templates(): arrayRudel::delete_template( string $name ): bool
القوالب المحفوظة نسخ للملفات فقط. لا تُنشئ API ولا أي أمر بيئة عزل من قالب. راجع القوالب.
Git
Rudel::push( string $id, string $remote_url = '', string $message = 'Update from Rudel', string $subdir = '' ): ?string
تُجري commit وpush لنسخة عمل داخل دليل بيئة العزل إلى الفرع rudel/{id}. تستخدم $remote_url و$subdir القيم المخزنة في بيئة العزل افتراضيًا. تُرجع SHA للالتزام، أو null عند عدم وجود تغييرات.
الأتمتة
Rudel::run_automation(): arrayيشغّل مهام الأتمتة المجدولة الآن.Rudel::run_scheduled_cleanup(): arrayيفعل الشيء نفسه.
راجع الأتمتة.
الخطافات وفهرس الأوامر
Rudel::hooks(): arrayيُرجع فهرس الخطافات الموثّق، مرتبًا حسب اسم الخطاف. راجع الخطافات.Rudel::cli_command_map(): arrayيُرجع وصفًا قابلًا للتسلسل لكل أمرwp rudelوالطريقة PHP التي تقف وراءه.Rudel::resolve_cli_command( $path, array $args = [], array $assoc_args = [] ): arrayيحوّل أمرًا محللًا إلى خطة تنفيذ من دون تشغيله.
$plan = Rudel::resolve_cli_command( 'wp rudel destroy', [ 'alpha-3be7' ] );
// $plan['callable'] => 'Rudel\Rudel::destroy'
// $plan['arguments'] => [ 'alpha-3be7' ]
// $plan['needs_confirmation'] => true
تستخدم معظم الخطط وسيلة النقل php. يُحل logs --follow إلى خطة shell تعمل tail -f.
التهيئة المستقلة
Rudel::init( Connection $connection, array $context = [] ): void
توجّه الواجهة إلى اتصال MySQL مباشر لاستخدامها خارج WordPress. تقبل $context environments_dir.
use Rudel\Connection;
use Rudel\Rudel;
Rudel::init(
new Connection( '127.0.0.1', 'wordpress', 'root', 'root', 'wp_' ),
[ 'environments_dir' => '/var/www/html/wp-content/rudel-environments' ]
);
Rudel::ensure_schema(): voidينشئ جداول Rudel للاتصال النشط.Rudel::reset(): voidيمسح الاتصال المستقل والحالة المخزنة مؤقتًا.