Rudel
Накладываемые среды WordPress для песочниц, выбираемые для каждого запроса.
composer require rudel/rudelПоследний выпуск v0.10.0 GPL-2.0-or-later WordPress 6.4+, PHP 8.2+
wp rudel create \
--name=feature-a \
--owner=dennis \
--labels=agent,qa \
--purpose="Test checkout changes" \
--ttl-days=7На практике
Создайте песочницу на основе сайта хоста, затем направьте в нее WP-CLI или запрос HTTP.
Создайте песочницу и направьте запрос в нее
wp rudel create клонирует таблицы хоста с новым префиксом, копирует тему в каталог песочницы и выводит ее идентификатор.
Передайте этот идентификатор в RUDEL_ENVIRONMENT для WP-CLI или в заголовке X-Rudel-Environment либо файле cookie rudel_environment для HTTP. Команда PHP API создает такую же песочницу с метаданными жизненного цикла.
wp rudel create --name=alpha --theme=twentytwentyfour
RUDEL_ENVIRONMENT=alpha-1234 wp option get siteurl
curl -H 'X-Rudel-Environment: alpha-1234' http://localhost:8000/$sandbox = Rudel::create( 'alpha', [
'theme' => 'twentytwentyfour',
'owner' => 'dennis',
'labels' => [ 'qa', 'agent' ],
'ttl_days' => 7,
] );Песочницы
Временные накладываемые среды для разработки, тестирования и AI-агентов.
Выбор запроса
Направляйте запрос в песочницу с помощью заголовка X-Rudel-Environment, файла cookie rudel_environment или RUDEL_ENVIRONMENT в WP-CLI. Выбор выполняется только по идентификатору песочницы, без аутентификации.
Среда выполнения с наложением
При активации в wp-config.php добавляется строка загрузчика. Каждая песочница получает клонированные таблицы с собственным префиксом и копию активной темы; файлы ядра WordPress, плагины и загруженные файлы остаются общими.
Рабочие деревья Git
Встроенные потоки клонирования, отправки изменений и рабочих деревьев Git на базе PHP; двоичный файл git на хосте не требуется.
Снимки
Именованные точки восстановления копируют таблицы песочницы и управляемые файлы темы. Создавайте и восстанавливайте их с помощью WP-CLI или PHP.
Изоляция запросов
Префиксы таблиц для каждого запроса, корневые каталоги тем, временный каталог, соль ключа кэша объектов и блокировка электронной почты.
WP-CLI & PHP API
Команды wp rudel и статические методы Rudel\Rudel позволяют создавать, просматривать, обновлять, сохранять снимки, восстанавливать и уничтожать песочницы.
Готово для агентов
Предоставляет агентам для написания кода временную копию WordPress; WP-CLI ограничен областью RUDEL_ENVIRONMENT, а исходящая электронная почта блокируется.
Почему Rudel
Одна установка, много песочниц
Rudel работает в обычной установке WordPress без мультисайта и второго экземпляра WordPress. Сайт хоста продолжает обслуживать собственные данные для каждого запроса, в котором не указана песочница.
Копирует таблицы и одну тему
Песочница получает копию таблиц хоста, включая пользователей, с собственным префиксом и копию активной темы, а для дочерней темы — также родительской. Файлы ядра WordPress, плагины и загрузки остаются на хосте.
Песочницы с ограниченным сроком действия
Укажите для песочницы владельца, метки, назначение и TTL в днях. Ежечасная задача WP-Cron удаляет просроченные песочницы и пропускает помеченные как защищенные.
Безопасный предварительный просмотр
Запросы песочницы блокируют исходящую почту и записывают каждое заблокированное сообщение в журнал. Если wp-config.php не задает собственную соль, соль ключей объектного кэша формируется из ID песочницы, поэтому постоянный кэш разделяет ключи хоста и песочницы.
Сравнение с
Rudel работает внутри уже запущенного вами сайта. Эти инструменты решают смежные задачи.
| Инструмент | Подходит для | Отличия от Rudel |
|---|---|---|
| WordPress Multisite | Подходит дляЗапускает сеть виртуальных сайтов на одном наборе файлов ядра с общими плагинами и темами, а также отдельными таблицами базы данных и каталогами загрузок для каждого сайта. | Отличия от RudelRudel не требует мультисайтовой установки. Песочница — это копия таблиц и активной темы существующего сайта, выбираемая для каждого запроса по заголовку, cookie или переменной окружения WP-CLI. |
| wp-env | Подходит дляНастраивает локальный сайт WordPress с Docker для разработки и тестирования плагинов и тем без дополнительной конфигурации. | Отличия от RudelRudel не требует второй установки WordPress. Песочницы создаются из содержимого уже запущенного вами сайта, а их таблицы хранятся в той же базе данных MySQL, что и данные хоста. Песочница не получает собственную среду выполнения PHP или сервер базы данных. |
| WordPress Playground | Подходит дляЗапускает WordPress на стороне клиента в WebAssembly, без серверной части, изолированно в браузере и без постоянных побочных эффектов за его пределами. | Отличия от RudelRudel работает на сервере рядом с реальным сайтом и его базой данных MySQL. Песочница создается на основе текущего содержимого этого сайта и доступна из WP-CLI и любого клиента HTTP. |
Вопросы и ответы
Краткие ответы из документации Rudel.
Ядро WordPress, файлы плагинов и загруженные медиафайлы. Каждая песочница получает собственную копию таблиц базы данных, включая пользователей, с автоматически созданным префиксом, а также собственную копию активной темы.
Отправьте заголовок X-Rudel-Environment или cookie rudel_environment в запросе HTTP либо задайте RUDEL_ENVIRONMENT для WP-CLI. Rudel принимает ID от любого клиента, поэтому выбор песочницы не является контролем доступа.
Нет. Запросы в песочнице блокируют исходящую почту с помощью фильтра pre_wp_mail и записывают в журнал адрес получателя и тему каждого заблокированного сообщения.
В двух таблицах базы данных хоста: wp_rudel_environments и wp_rudel_worktrees со стандартным префиксом. Конфигурации среды выполнения JSON и хранилища SQLite нет.
Активация создает таблицы среды выполнения, добавляет строку начальной загрузки в wp-config.php и планирует событие очистки, поэтому в этот момент WordPress требуется разрешение на запись в wp-config.php. При деактивации строка удаляется.
Да. wp rudel snapshot сохраняет таблицы песочницы и ее файлы темы под указанным именем, а команда wp rudel restore с параметром --snapshot восстанавливает их.
Установите плагин, создайте песочницу на основе собственного сайта и отправьте в нее первый запрос с помощью руководства по началу работы.