kviron / dwr-project
WordPress boilerplate with modern development tools, easier configuration, and an improved folder structure
Requires
- php: >=7.1
- composer/installers: ^1.12
- kviron/advanced-custom-fields: *
- oscarotero/env: ^2.1
- roots/bedrock-autoloader: ^1.0
- roots/bedrock-disallow-indexing: ^2.0
- roots/wordpress: 5.8.2
- roots/wp-config: 1.0.0
- roots/wp-password-bcrypt: 1.1.0
- vlucas/phpdotenv: ^5.3
- wpackagist-plugin/acf-extended: *
- wpackagist-plugin/cyr2lat: *
Requires (Dev)
- roave/security-advisories: dev-latest
- squizlabs/php_codesniffer: ^3.6.0
- symfony/var-dumper: ^v5.3.10
- wpackagist-plugin/debug-bar: *
- wpackagist-plugin/wp-php-console: *
README
Особенности
- Улучшенная структура папок
- Управление зависимостями Composer
- Простая конфигурация WordPress с помощью env
- Переменные окружения с Dotenv
- Autoloader for mu-plugins (use regular plugins as mu-plugins)
- Enhanced security (separated web root and secure passwords with wp-password-bcrypt)
Зависимости
- PHP >= 7.1
- Composer - Install
Установка и создание проекта
- Выполните команду для создания проекта:
composer create-project kviron/dwr-project <project-name>
- Обновите переменные в файле
.env
. Если значения имеют буквенно-цифровые значения, обязательно оборачивайте их в одинарные кавычки.
- Переменные настройки базы данных
DB_NAME
- Имя базы данныхDB_USER
- Пользователь базы данныхDB_PASSWORD
- Пароль базы данныхDB_HOST
- Хост базы данных- Если вы используете Docker как сервер в нем нужно обязательно указать имя контейнера базы данных например db
WP_ENV
- Переменначя режима работы сайта, может быть (development
,staging
,production
)WP_HOME
- Полный URL адрес до сайта WordPress (https://example.com)WP_SITEURL
- Полный URL-адрес WordPress, включая подкаталог (https://example.com/wp)AUTH_KEY
,SECURE_AUTH_KEY
,LOGGED_IN_KEY
,NONCE_KEY
,AUTH_SALT
,SECURE_AUTH_SALT
,LOGGED_IN_SALT
,NONCE_SALT
- Генерируються по ссылке wp-cli-dotenv-command
- Генерируються по ссылке our WordPress salts generator
- Добавте вашу тему в
web/app/themes/
как и для обычного сайта WordPress - Установите корневой каталог документа на вашем веб-сервере в качестве базового
html
folder:/path/to/site/html/
- Доступ к админке WordPress
https://example.com/wp/wp-admin/
Развертка локального сервера с помощью Docker
- Что бы запустить локальный сервер на Docker нужно выполнить все шаги перечисленные выше и после выполнить команду
docker-compose up --build -d
- В файле
.env
можно указать определенную конфигурацию сервераPROJECT_NAME
- устанавливает префикс к именам созданных контейнеровexample_db
,example_phpmyadmin
и т.д.PHP_VER
- указывает какую версию php устанавливать на локальном сервере не рекомендуеться устанавливать весрию ниже 7.1PHP_PORT
- устанавливает на каком порту будет доступен наш проект, если вы используете по умолчанию 80 порт убедитесь, что данный порт свободен и не занят например программой OpenServer или другим ПО.PMA_PORT
- устанавливает на каком порту будет доступен phpmyadmin для доступа к базе данных сайтаMYSQL_PORT
- устанавливает на каком порту будет доступен сервер базы данныхMYSQL_ROOT_PASSWORD
- устанавливает пароль для root пользователя базы данных
Установка плагинов и тем WordPress
Для того что бы установить любой плагин WordPress необходимо выполнить в корне проекта команду
composer require wpackagist-plugin/<plugin-name>
Для установки темы команда будет аналогична
composer require wpackagist-theme/<theme-name>
Так же вы можете загружать различные PHP пакеты расширений с packagist.org. В большинстве случае ничего страшного не случиться, но мы не рекомендуем подключать зависимости packagist.org в корневом composer.json Так как некоторые темы могут использовать анологичные зависимости внутри себя, и если в системе будет зарегистрирован один и тот же пакет это вызовит фатальную ошибку.
Рекомендуеться все стороние PHP зависимости держать в my-theme/composer.json
и подключать внутри темы.
Файл my-theme/functions.php
require __DIR__ . '/vendor/autoload.php'
Особености использования проекта
1. Улучшенный дамп
В нашем проекте подключен удобный var-dumper
от symfony. Все что нужно для его использования это вызвать функцию
dump
примеры использования нативного дампа:
var_dump($var);
Вместо использования нативного var_dump
используйте функцию dump
dump($var);
2. Быстрое создание дампа базы данных
Важная помарка, все файлы дампов базы данных нужно хранить в папке dumps Есть два быстрых способа сделать дамп базы данных
3. WP CLI
wp db export ./dumps/<file_name>.sql
На вашем сервере должен быть установлен WP CLI смотрите инструкцию
4. Docker
docker exec <project_name>_db sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > ./dumps/<file_name>.sql
Обратите внимание, example_db это только пример названия контейнера, вам нужно использовать свое имя контейнера по
такому шаблону <project_name>_db
а так же нужно указать имя файла в который будет слит дамп базы данных
Смена корневой папки проекта
Если вы хотите поменять корневую папку с html
на свою. Вам потребуется
- Переименовать папку
html
в ваше название - Откройте файл
config/application.php
и поменяйте переменную$webroot_dir
на свое название - Откройте
composer.json
и поменяйте вездеhtml
на название своей папки - Отредактируйте файл
.gitignore
заменив старое название папки - Для работы WP-CLI так же нужно поправить пути в файле
wp-cli.yml