انتقل إلى المحتوى

API

Rudel\Rudel واجهة ثابتة. كل طريقة في هذه الصفحة هي طريقة عامة ثابتة في ذلك الصنف.

PHP
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

تُرجع كل ما سبق في مصفوفة واحدة:

PHP
[
    '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. ولا تقبل أي عوامل تصفية.

PHP
foreach ( Rudel::all() as $sandbox ) {
    echo $sandbox->id . ' ' . $sandbox->status . "\n";
}

Rudel::get( string $id ): ?Environment

تُحمّل بيئة عزل واحدة حسب المعرّف، أو تُرجع null.

PHP
$sandbox = Rudel::get( 'alpha-3be7' );

Rudel::environments_dir(): string

تُرجع الدليل الذي يحتوي على أدلة بيئات العزل.

دورة الحياة

Rudel::create( string $name, array $options = [] ): Environment

تنشئ بيئة عزل وتُرجعها. يُنشأ المعرّف من الاسم متبوعًا بأربعة أحرف سداسية عشرية.

PHP
$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.

PHP
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 = '' ): array
  • Rudel::templates(): array
  • Rudel::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 يحوّل أمرًا محللًا إلى خطة تنفيذ من دون تشغيله.
PHP
$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.

PHP
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 يمسح الاتصال المستقل والحالة المخزنة مؤقتًا.