
# الإنشاء

## الإنشاء من المضيف

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

ينشئ Rudel معرّفًا من الاسم وأربعة أحرف سداسية عشرية (مثل `alpha-3be7`)، ويستنسخ جداول المضيف WordPress ضمن بادئة جداول مُنشأة، وينسخ القالب المحدد إلى مجلد البيئة المعزولة، ويسجل البيئة في قاعدة بيانات المضيف WordPress. تحتفظ `siteurl` و`home` للبيئة المعزولة بـ URL المضيف.

إذا لم يُحدّد `--theme`، يستخدم Rudel القالب النشط لموقع المضيف. يجب تثبيت القالب على المضيف. ويضم القالب الابن قالبه الأب معه.

يُنسخ كل جدول يحمل بادئة جداول المضيف، بما في ذلك `users` و`usermeta`، باستثناء جداول Rudel نفسه. وفي الإصدار الحالي، يشمل ذلك أيضًا جداول البيئات المعزولة الموجودة، لذا يكون كل محيط جديد أكبر من سابقه. راجع [المسألة #3](https://github.com/inline0/rudel/issues/3).

## الإنشاء من بيئة معزولة أخرى

```bash
wp rudel create --name=feature-b --clone-from=alpha-3be7
```

تحصل البيئة المعزولة الجديدة على نسخة من كل جدول يحمل بادئة البيئة المصدر، بما في ذلك جداول اللقطات الخاصة بالمصدر، وعلى قالبها. لا تُنسخ مجلدات اللقطات، لذا لا تُستخدم تلك الجداول في البيئة الجديدة ([المسألة #12](https://github.com/inline0/rudel/issues/12)). عندما يكون مجلد قالب المصدر مستودع Git، ينشئ Rudel شجرة عمل مرتبطة على الفرع `rudel/{new-id}` بدلًا من نسخة عادية. يُسجّل المعرّف المصدر في السجل الجديد.

## بيانات دورة الحياة

يمكن أن تتضمن البيئات المعزولة بيانات وصفية للتنظيف والملكية:

```bash
wp rudel create \
  --name=feature-a \
  --owner=dennis \
  --labels=agent,qa \
  --purpose="Test checkout changes" \
  --ttl-days=7
```

استخدم `--protected` عندما يجب ألا يزيل التنظيف الآلي البيئة المعزولة. راجع [السياسة](https://rudel.inline0.dev/ar/docs/features/policy).

## الحدود

يفشل الإنشاء عند بلوغ إعدادات `max_sandboxes` أو `max_disk_mb`. القيمة الافتراضية لكليهما هي `0`، ما يعني عدم وجود حد. راجع [الإعدادات](https://rudel.inline0.dev/ar/docs/configuration).

## نسخ Git للعمل

```bash
wp rudel create --name=feature-a --git=https://example.test/my-theme.git
```

ينشئ Rudel البيئة المعزولة، ويستنسخ المستودع البعيد إلى `themes/my-theme` داخل مجلد البيئة، ثم يبدّل نسخة العمل إلى الفرع `rudel/{id}`. أضف `--type=plugin` للاستنساخ إلى `plugins/my-theme` بدلًا من ذلك. يترك الاستنساخ الفاشل البيئة المعزولة كما هي ويطبع تحذيرًا. راجع [Git](https://rudel.inline0.dev/ar/docs/features/git) لمعرفة ما تقدّمه البيئة المعزولة من نسخة العمل.

## بنية المجلدات

```text
wp-content/rudel-environments/{id}/
  themes/       copied theme, plus any Git checkout
  snapshots/    snapshot metadata and theme copies
  logs/ metadata/ tmp/
  wp-cli.yml
  debug.log     when debug logging is active
```
