
# Конфигурация

Rudel има два вида конфигурация: настройки, съхранени в опцията WordPress на `rudel_config`, и константи, които дефинирате в `wp-config.php`.

## Опцията `rudel_config`

Настройките се намират в един масив в `wp_options` под `rudel_config`. Докато нещо не запише опцията, всеки ключ използва стойността си по подразбиране. Непознатите ключове се игнорират, а стойностите се съхраняват като цели числа.

| Ключ | По подразбиране | Значение |
|-----|---------|---------|
| `max_sandboxes` | `0` | Отказва създаването на пясъчна среда, когато броят им достигне тази стойност. `0` означава без ограничение. |
| `max_disk_mb` | `0` | Отказва създаването на пясъчна среда, когато общият размер на директориите им достигне тази стойност в мегабайти. Клонираните таблици не се броят. `0` означава без ограничение. |
| `default_ttl_days` | `0` | Срок на валидност за нови пясъчни среди, създадени без `ttl_days` или `expires_at`. `0` означава без срок на валидност. |
| `max_age_days` | `0` | Почистването премахва пясъчните среди, по-стари от тази стойност. `0` изключва правилото за възраст. |
| `max_idle_days` | `0` | Почистването премахва пясъчните среди без записана активност (заявка към пясъчна среда или снимка на състоянието) през този период. `0` изключва правилото за неактивност. |
| `auto_cleanup_enabled` | `1` | Изпълнява правилото за почистване от WP-Cron на всеки час. |
| `auto_cleanup_merged` | `0` | Изпълнява и почистването на слети клонове от WP-Cron. |
| `expiring_environment_notice_days` | `0` | При всяко изпълнение на автоматизацията събира пясъчните среди, чийто срок изтича в рамките на този брой дни, и ги предава на действието `rudel_after_automation_expiring_environments`. |
| `auto_snapshot_before_restore` | `1` | Записва снимка на състоянието `pre-restore-...` преди всяко възстановяване. |

`wp rudel status` отпечатва текущите стойности.

Запишете опцията с WP-CLI. За пропуснатите ключове се запазват стойностите по подразбиране:

```bash
wp option update rudel_config '{"max_age_days":14,"max_idle_days":3,"auto_cleanup_merged":1}' --format=json
```

Или от PHP:

```php
$config = new Rudel\RudelConfig();
$config->set( 'max_sandboxes', 20 );
$config->save();
```

Събитието WP-Cron се планира или премахва при следващата заявка след промяна. Вижте [Автоматизация](https://rudel.inline0.dev/bg/docs/features/automation).

## Константи

Дефинирайте ги в `wp-config.php` преди реда за начално зареждане Rudel.

| Константа | По подразбиране | Значение |
|----------|---------|---------|
| `RUDEL_CLI_COMMAND` | `rudel` | Име на кореновата команда WP-CLI. |
| `RUDEL_ENVIRONMENTS_DIR` | `wp-content/rudel-environments` | Директорията, в която се съхраняват директориите на пясъчните среди. Файловете на темата винаги се предоставят от `/wp-content/rudel-environments/{id}/themes`, така че другата директория трябва да е достъпна на същия URL. |
| `RUDEL_RUNTIME_TABLE_PREFIX` | `rudel_` | Част от имената на таблиците Rudel след префикса WordPress. Вижте [Състояние на изпълнение](https://rudel.inline0.dev/bg/docs/features/runtime-state). |
| `RUDEL_RUNTIME_TABLE_ENVIRONMENTS` | | Пълно име за замяна на таблицата environments след префикса WordPress. |
| `RUDEL_RUNTIME_TABLE_WORKTREES` | | Пълно име за замяна на таблицата worktrees след префикса WordPress. |
| `RUDEL_DB_DRIVER` | `auto` | Драйвер за самостоятелен достъп до `Rudel\Connection`: `auto`, `mysqli` или `pdo`. Заявките WordPress винаги използват `$wpdb`. |
| `RUDEL_GIT_AUTHOR_NAME` | `Rudel` | Име на автор, което Rudel записва в конфигурацията Git на работното копие, когато липсва `user.name`; използва се за комити `wp rudel push`. |
| `RUDEL_GIT_AUTHOR_EMAIL` | `rudel@localhost` | Имейл на автор, който Rudel записва, когато в работното копие липсва `user.email`. |

## Константи в заявка към пясъчна среда

Когато заявка избере пясъчна среда, началното зареждане дефинира константи, които кодът може да чете. Най-полезните са:

| Константа | Стойност |
|----------|-------|
| `RUDEL_ID` | ID на пясъчната среда |
| `RUDEL_PATH` | директория на пясъчната среда |
| `RUDEL_TABLE_PREFIX` | префикс на таблиците на пясъчната среда |
| `RUDEL_THEME_SLUG` | тема, предоставяна от пясъчната среда |
| `RUDEL_HOST_URL`, `RUDEL_ENVIRONMENT_URL` | URL адреси на хоста и пясъчната среда |
| `RUDEL_DISABLE_EMAIL` | `true`; изходящата поща е блокирана |

Предпочитайте методите [API](https://rudel.inline0.dev/bg/docs/api), като `Rudel::id()`, вместо да четете директно константите.

Началното зареждане дефинира също `WP_DEBUG`, `WP_DEBUG_LOG`, `WP_DEBUG_DISPLAY`, `WP_TEMP_DIR`, `WP_CACHE_KEY_SALT` и осемте ключа и соли за удостоверяване, но само онези, които `wp-config.php` още не е дефинирал. Вижте [Регистрационни файлове за грешки](https://rudel.inline0.dev/bg/docs/features/logging) и [Изолиране](https://rudel.inline0.dev/bg/docs/environments/isolation).
