Конфигурация
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. Для пропущенных ключей сохраняются значения по умолчанию:
wp option update rudel_config '{"max_age_days":14,"max_idle_days":3,"auto_cleanup_merged":1}' --format=json
Или из PHP:
$config = new Rudel\RudelConfig();
$config->set( 'max_sandboxes', 20 );
$config->save();
Событие WP-Cron будет запланировано или удалено при следующем запросе после изменения. См. Автоматизация.
Константы
Определите их в wp-config.php перед строкой bootstrap 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. См. Состояние среды выполнения. |
RUDEL_RUNTIME_TABLE_ENVIRONMENTS |
Переопределение полного имени таблицы сред после префикса WordPress. | |
RUDEL_RUNTIME_TABLE_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. |
Константы в запросе к песочнице
Когда запрос выбирает песочницу, bootstrap определяет константы, доступные для чтения коду. Самые полезные из них:
| Константа | Значение |
|---|---|
RUDEL_ID |
ID песочницы |
RUDEL_PATH |
каталог песочницы |
RUDEL_TABLE_PREFIX |
префикс таблиц песочницы |
RUDEL_THEME_SLUG |
тема, обслуживаемая из песочницы |
RUDEL_HOST_URL, RUDEL_ENVIRONMENT_URL |
URL хоста и песочницы |
RUDEL_DISABLE_EMAIL |
true; исходящая почта заблокирована |
Предпочтительнее использовать методы API, например Rudel::id(), вместо прямого чтения констант.
Bootstrap также определяет WP_DEBUG, WP_DEBUG_LOG, WP_DEBUG_DISPLAY, WP_TEMP_DIR, WP_CACHE_KEY_SALT, а также восемь ключей и солей аутентификации, но только те из них, которые еще не определены в wp-config.php. См. Журналирование ошибок и Изоляция.