Хотите начать использовать Better WP-Config как можно скорее ?
define()
для всех констант, необходимых для ядра WordPress..php
, файл .env
или файл JSON
.db
, debug
, error
, salts
и т. д.define()
и ini_set()
и т. д.define()
необходимые любому плагину или теме.private
каталоги управляемых веб-хостов для хранения конфигурации.ABSPATH
(например, ядро WP) в корень веб-сайта, /wp
или любой другой подкаталог.WP_CONTENT_DIR
в /wp-content
, /app
или любой другой подкаталог.local
, test
, stage
, prod
и т. д.HTTP_HOST
с помощью регулярного выражения.secrets
)index.php
или wp-config.php
$_ENV
, $_SERVER
или getenv()
private
каталогахwp_config()->print_config();
(Примечание: следующее не будет верным, пока мы не решим эту проблему. А до тех пор смотрите наш быстрый старт)
Просто создайте файл с именем /wp-content/config/config.php
и добавьте конфигурацию вашего сайта, используя следующий формат:
<?php
return array(
'db[name]' => 'example_db',
'db[user]' => 'example_user',
'db[pass]' => '1234567890abcdef',
'db[charset]' => 'utf8mb4_unicode_ci',
'db[collate]' => 'utf8mb4',
'db[host]' => 'localhost',
'db[table_prefix]' => 'wp_',
'defines' => array(
'CONSTANT_REQUIRED_BY_A_PLUGIN' => 'it's value'
),
);
Вам также потребуется заменить /index.php
и /wp-config.php
вашего сайта очень простыми альтернативами, которые вы можете найти здесь и здесь соответственно.
Однако прежде чем делать неверные предположения:
Better WP-Config может загружать файлы конфигурации из ../config
, /private/config
или откуда угодно.
Если вы сторонник разделения конфигурации и кода, вы можете установить для file_format
значение 'env'
.
Это может показаться простым — это было сделано специально, чтобы облегчить начало работы — но Better WP-Config был разработан для удовлетворения очень сложных требований к конфигурации. Как только вы начнете и столкнетесь с более сложными вариантами использования, такими как несколько сред и автоматическое развертывание, вы увидите, насколько гибким и мощным на самом деле является Better WP-Config.
Вы можете спросить, какую проблему пытается решить Better WP-Config. Вы можете спросить: «Зачем нам нужно лучшее решение для настройки WordPress?» Что ж, он нам нужен, потому что мы обнаружили, что слишком много вариантов использования, выходящих за рамки тривиальных, требуют лучшего решения по настройке. Читайте дальше:
WordPress — отличная CMS, но она игнорирует потребности разработчиков WordPress, которые хотели бы использовать более профессиональный рабочий процесс, например, в test
/ stage
/ live
средах. Конфигурация WordPress по умолчанию была разработана для управления конфигурацией одной среды; если вы хотите управлять большим количеством сред, вам придется развернуть собственное решение для конфигурации с несколькими средами.
WordPress позволяет хранить конфигурацию в wp-config.php
в корне веб-сайта или на один уровень выше. Хотя вы можете сохранить свою конфигурацию в другом файле, а затем require()
ее в wp-config.php
(что и делает Better WP-Config ), объединение собственного решения означает, что вам также необходимо его документировать и поддерживать, если вы хочу зависеть от этого в будущем.
И если вы потрудитесь разработать и задокументировать такое решение, как Better WP-Config, вы по сути потратите время (и деньги?) на дублирование того, что вы могли бы только что использовать без каких-либо усилий по разработке и документированию.
Что еще больше усугубляет ситуацию, каждый управляемый хост WordPress, такой как Pantheon и WPEngine, предлагает свои собственные произвольно несовместимые решения конфигурации для поддержки своего собственного управляемого предложения WordPress.
Вот как различные управляемые веб-хосты WordPress обрабатывают и/или ограничивают вас с помощью wp-config.php
.
Если вы знакомы с тем, как другие управляемые веб-сайты WordPress обрабатывают wp-config.php
рассмотрите возможность отправки запроса на извлечение с документацией о том, как они обрабатывают свой wp-config.php
чтобы помочь нам и другим.
Любой, кто работал с WordPress, знает о настройке учетных данных базы данных WordPress с помощью констант PHP DB_HOST
, DB_NAME
, DB_USER
и DB_PASSWORD
. Это кажется простым и легким, когда вы впервые начинаете работать с WordPress, но со временем вы понимаете, что это делает конфигурацию очень негибкой, потому что вы не можете каскадировать конфигурации из настроек WordPress по умолчанию, настроек вашего проекта, особенностей вашей среды и, наконец, конфигурации вашего веб-хоста.
Better WPConfig не исключает использования неизменяемых констант, а вместо этого ждет, пока вся каскадная конфигурация будет объединена, прежде чем define()
эти константы. (Но это может быть первым шагом к искоренению использования констант PHP define()
d в WordPress. Это мысль, потому что неизменяемые константы PHP делают автоматическое тестирование функциональности WordPress намного сложнее, чем это должно быть.)
К сожалению, не существует простого способа найти все параметры, доступные для ядра WordPress, поскольку они подразумеваются в кодовой базе WordPress и в различных документированных местах в Интернете. Лучший WP-Config (в основном) решает эту проблему с помощью "wp_config()->print_config()
, аналогично phpinfo()
Многие параметры конфигурации не имеют значений по умолчанию, например конфигурация базы данных, которая расширяет возможности обучения, необходимого для локальной разработки. Better WP-Config предоставляет параметры по умолчанию для всех «известных» параметров.
Само по себе вы могли бы придумать набор работоспособных соглашений, позволяющих контролировать версии вашей конфигурации для всех различных сред, которые нужны вашему проекту — мы это сделали — но затем вы понимаете, что каждый веб-хост обрабатывает это по-своему и старайтесь, как можете. , вы чувствуете, что невозможно найти одно единое решение, которое может использовать ваша команда и которое будет работать с различными веб-хостами, выбранными вами и вашими клиентами.
Чтобы лучше понять, почему это сложно, обязательно прочитайте, как Pantheon и WPEngine обрабатывают свои файлы wp-config.php
соответственно.
Наконец, проблемы, связанные с профессиональным рабочим процессом и вариантами использования контроля версий, усугубляемые несовместимым выбором, сделанным управляемыми веб-хостами WordPress просто из-за отсутствия стандартизации wp-config.php
просто усложняют развертывание, чем должно быть. Это применимо независимо от того, используете ли вы загрузку по SFTP, развертывание Git, такое как Pantheon, или развертывание через поставщика непрерывной интеграции, такого как CircleCI.
Хорошая новость: Better WP-Config решает (почти) все эти проблемы уже сегодня! Приступайте к работе .
Мы очень довольны тем, насколько хорошо работает Better WP-Config . Однако все может быть:
Было бы здорово , если бы вилки ClassicPress и CalmPress использовали Better WP-Config для настройки.
Еще лучше , если бы веб-хосты, управляемые WordPress, стандартизировали бы Better WP-Config для своих услуг или
Лучше всего, если бы сам WordPress использовал Better WP-Config для новых установок, сохраняя при этом постоянную поддержку существующих сайтов, которые уже используют wp-config.php
как это было в течение многих лет.
лицензия GPLv2