В WordPress отсутствует встроенная поддержка нескольких сред, которые так важны для разработчиков – это локальная среда, среда тестирования и продакшн. Что и не удивительно, ведь данный поток операций не является близким для преобладающего большинства пользователей, публикующих материалы в WordPress.
Тем не менее, запуск отдельного сайта для разработки может быть сложным и утомительным действием, которое можно значительно упростить в WordPress. Процесс обычно включает в себя обновление параметров базы данных в wp-config.php, а также выполнение SQL-запросов для изменения параметров wp_siteurl и wp_home. Разработчики оперируют разнообразными инструментами, чтобы оптимизировать задачу перемещения между разными средами, однако это по-прежнему очень запутанный процесс.
WordPress Multi-Environment Config
Саймон Джонс — основатель и технический директор Studio 24, агентства по веб-разработке, которое работает в основном с WordPress. Он считает, что платформа должна предлагать улучшенную поддержку тем, кто работает в многочисленных средах, и специально для этого он создал расширение для системы конфигурирования WP.
«Чтобы эффективно работать над проектом, мне нужно иметь все настройки разных сред в коде сайта», говорит Джонс. «Поэтому, когда мы совершаем изменения в тестовой среде, все вещи уже работают». С этой целью он создал проект WordPress Multi-Environment Config. Проект поддерживает использование WordPress в разных средах – в среде разработки, среде тестирования и среде продакшна, — без необходимости редактирования ваших конфигурационных файлов и обновления URL-адресов сайта в вашей базе данных.
Джонс использует подход, применяемый в проекте ExpressionEngine master config. Конфигурационные файлы разбиваются на следующие:
- wp-config.default.php – любые общие параметры, используемые во всех средах
- wp-config.{environment}.php – параметры для каждой конкретной среды
- wp-config.env.php – определяет, какие URL-адреса заданы для разных сред
- wp-config.php – исходный конфигурационный файл WP, содержащий теперь только код загрузки
Вы копируете любые общие настройки, такие как ключи авторизации, в файл wp-config.default.php. Затем вы копируете ваши уникальные параметры для каждой среды, такие как, к примеру, настройки доступа к базе данных, в файл wp-config{environment}.php. В файле wp-config.env.php вы определяете, какие URL определены для разных сред. Вы можете также задавать среду через переменные среды веб-сервера, если вам нравится такой подход.
Как только все это будет задано, WordPress сначала загрузит базовые параметры конфигурации, следом за которыми будет загружен корректный конфигурационный файл среды, основанный либо на параметрах в wp-config.env.php, либо на установленной переменной среды веб-сервера. Ваша конфигурация в таком случае будет прекрасно работать для разных сред – локальной, тестовой и рабочей (путем задания нужного URL).
Опыт Джонса с работой в агентстве вдохновил его на создание проекта WordPress multi-environment config. «Как и многие другие веб-разработчики и онлайн-агентства, мы в Studio 24 работает в разных средах над клиентскими веб-сайтами», отметил он. «Как показывает мой опыт, у большинства CMS отсутствует продуманная поддержка нескольких сред, обычно нужно создавать локальные конфигурационные файлы или вносить изменения в базу данных при переносе файлов на работающий сайт. Даже Drupal только сейчас начал смотреть в сторону добавления поддержки многочисленных сред в версии Drupal 8».
Джонс считает, что WordPress должна иметь поддержку многочисленных сред в ядре. «Лишь немногие CMS действительно рассматривают это. Указанная особенность является существенной для людей, работающих над современным вебом», отметил он. «Учитывая, как много изменений произошло в WordPress за несколько прошлых лет, было бы приятно видеть возможности, которые помогут разработчикам разворачивать многочисленные среды и работать в них».
Улучшенная система управления конфигурациями позволила бы WordPress разработчикам эффективнее работать с корпоративными средами, которые зачастую обладают более сложным потоком операций по развертыванию. Небольшие агентства, фрилансеры и просто люди, создающие WordPress-сайты, смогут также извлечь из этого выгоду. Даже если большинство WordPress-пользователей не работает над своими сайтами в многочисленных средах, можно было бы упростить эту задачу для тех, кто поступает именно так.
Тем временем WordPress Multiple Environment Config представляет собой прекрасное решение. Несмотря на то что оно не позволять осуществлять перенос данных БД между средами, данная установка предлагает чистый и удобный способ управления конфигурациями при перемещении между сайтами. Для получения дополнительной информации о том, как установить и использовать WordPress Multiple Environment Config, проверьте страницу проекта на GitHub.
Источник: wptavern.com