Початок роботи
Вимоги
- PHP 8.2+
- WordPress 6.4+
- MySQL або MariaDB через звичайне підключення до бази даних WordPress
- доступний для запису
wp-config.phpпід час активації плагіна
Встановлення
Установіть Rudel за допомогою Composer та активуйте його як звичайний плагін WordPress.
composer require rudel/rudel
wp plugin activate rudel
Composer встановлює Rudel у vendor/rudel/rudel, якщо у вашому проєкті плагіни WordPress не розміщуються в wp-content/plugins (наприклад, за допомогою composer/installers). Щоб wp plugin activate rudel знайшов плагін, він має бути в каталозі плагінів.
Що відбувається під час активації
Під час активації створюються таблиці Rudel, планується щогодинне завдання очищення та додається рядок завантаження до wp-config.php безпосередньо перед рядком, що завантажує wp-settings.php. Цей рядок дає змогу Rudel вибрати пісочницю до завершення завантаження WordPress. Спочатку Rudel створює резервну копію під назвою wp-config.php.rudel-backup-{timestamp}.
Окремої команди встановлення немає. Якщо wp-config.php недоступний для запису, активація завершується помилкою. Деактивація видаляє цей рядок і заплановане завдання.
Перевірте стан середовища виконання:
wp rudel status
Bootstrap installed має показувати yes.
Створення пісочниці
wp rudel create --name=alpha --theme=twentytwentyfour
Rudel виводить згенерований ID пісочниці, наприклад alpha-3be7. Команда клонує таблиці хосту WordPress у простір імен таблиць пісочниці, копіює тему до каталогу пісочниці та зберігає запис у базі даних хосту WordPress. У прикладах нижче використовується alpha-3be7; вкажіть ID, виведений вашою командою.
Використання WP-CLI у пісочниці
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
Без RUDEL_ENVIRONMENT команда WP-CLI звертається до хосту.
Маршрутизація HTTP у пісочницю
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
Для сеансу браузера задайте cookie rudel_environment зі значенням ID пісочниці. Rudel читає cookie, але не встановлює та не очищує його. Видаліть cookie, щоб повернутися до хосту.
Пісочниця працює на хостовому URL. Без заголовка чи cookie той самий URL обслуговує хост.