Skip to content

petrozavodsky/wordpress-magic-boilerplate

Repository files navigation

ⓦ WordPress Magic Boilerplate Codacy Badge AUR WordPress

WordPress Плагин

Wordpress Magic Boilerplate

Скелет плагина призванный привнести в ваш код WordPress код много срытой магии. Позволяет повысить порог вхождения джуниоров в проект, ломает сложившие паттерны разработки WordPress.

Полезность

Исходя из требований современных тенденций веб разработки плагин дает возможность ранее реализованные вещи более сложным образом.

Привносит в свой код все то что все мы так любим.

  • Многословность;
  • Быть может позднее статическое связывание;
  • Возможно кодогенирацию;
  • Мое субъективное видение проблем проблем WordPress;
  • ООП;
  • Навязывает зависимость от сторонних утилит.

Я ещё не определился с полным списком фитч и точно не уверен. Документации на английском скорее всего не будет никогда.

Установка

Понадобится перейти в каталог плагинов вашего сайта обычно это wp-content/plugins/

Далее клонируем этот репозиторий: [email protected]:petrozavodsky/wordpress-magic-boilerplate.git

И переходим в каталог: cd wordpress-magic-boilerplate

Выдаем права на выполнение конфигуратора: chmod +x scaffold.sh

Придумываем имя будущего плагина (например MyPlugin) и исполняем скрипт: ./scaffold.sh MyPlugin

Бинго ! Скелет будущего плагина создан, можно начинать разработку.

Подробнее об установке

Фитчи

Стиль кода

В ядре WordPress не принято использовать PSR-2 но для плагина он вполне подойдет. В остальном рекомендации wordpress.org хорошие и их можно соблюдать.

Сборка фронтенда

Для сборки используется таск менеджер Gulp .

Все ресурсы имеющие отношение к фронтенду находятся в каталоге public/.

После установки нужно в каталоге плагина нужно выполнить npm install для установки gulp и плагинов к нему. После установки можно приступить к сборке фронтенда такс gulp js - минифицирует Javascript файлы в каталоге public/js и кладет их рядом с оригинальными добавляя *.min.js перед расширением . Javascript файлы в каталоге public/js/vendor никак не обрабатываются, в него следует помещать сторонние библиотеки.

В качестве препроцессора Less, возможно это не лучший выбор зато не избыточный и компилируется быстро.

Все файлы с расширением *.less в каталоге public/css компилируются в css файлы с аналогичными именами и расширением *.css. Запустить процесс можно командой gulp css. Команда gulp watch включает автоматическое слежение за изменением js/css файлов, и при их изменении запускает их компиляцию.

Конкатенация нескольких файлов в один не происходит так как файлы скриптом и стилей обычно выводятся только на страницах сайта требующих их применения. Для объединения файлов в WordPress есть другие инструменты которые могут решить эту проблему и будут работать с такой структурой проекта.

Если в WordPress константа CONCATENATE_SCRIPTS равна true то будут использованы не минифицированные версии скриптов.

Графические файлы любых типов в каталоге public/images могут быть минифицированный автоматически, об этом не нужно заботиться в момент их создания. В gulpfile.js есть соответствующий таск.


Внимание семантическое версионирование, между мажорными версиями (когда они появятся) совместимость точно будет ломаться.

PS создавать экземпляры в конструкторе основного класса плагина не обязательно, это сделано для демонстрации