Композитор для WordPress, часть 1
Итак, после обсуждения всех различных библиотек, которые могут помочь улучшить качество кода вашей работы, все еще возникает вопрос:
Как заставить эти проекты работать с нашей кодовой базой?
Короче говоря, для этого требуется Composer. Если вы никогда не использовали его, я кратко писал об этом ранее, но я намерен предоставить основы того, что вам нужно, чтобы начать использовать его и вышеупомянутые библиотеки в вашей работе.
И в этом посте, и в следующем я расскажу, как настроить все локально в самой простой форме, а затем как это интегрируется с Git, чтобы вы могли начать использовать его в повседневной жизни.
Настройка Composer для WordPress
Есть много информации, которая может (и я бы сказал, что она должна быть помещена в файл для Composer). Это включает в себя такие вещи, как информация об авторе, PSR, информация и т. д. Но это действительно выходит за рамки этого поста. Вместо этого я хочу поделиться необходимым минимумом того, как получить и настроить эту информацию.
Образец каталога
Предположим, на мгновение вы собираетесь начать работу над плагином или чем-то, связанным с WordPress, для которого потребуются различные библиотеки, обсуждавшиеся в предыдущих сериях. И при настройке каталога для этого у вас будет очень мало файлов. Можно пару пустых PHP-файлов, ассетов и т.п. Возможно, это будет выглядеть так:
Конечно, приведенный выше пример уже немного опережает то, как может выглядеть ваша работа, потому что:
- Есть
composer.lockфайл, показывающий, что Composer запущен, - У него есть
vendorкаталог, который показывает, что библиотеки были установлены через Composer, - Существует
grumphp.ymlфайл, который определяет, как должен работать GrumPHP (и я расскажу об этом позже) при анализе кода.
Но суть вышеизложенного та же: у вас есть composer.jsonи он определяет и включает в себя все, что нам нужно, исходя из предыдущего поста. Итак, как мы это настроим?
Настройка композитора
Во-первых, вам нужно иметь представление о том, как вы собираетесь структурировать свой плагин. Например, у меня есть такая настройка плагина:
- Все файлы PHP находятся в
srcкаталоге, - Все файлы CSS, JavaScript, изображения и т. д. находятся в
assetsкаталоге, - Каталог
vendorпредназначен для вещей, которые устанавливаются через Composer, viewsэто то, что используется в интерфейсе проекта.
Например:
Во-вторых, в рассматриваемом каталоге вам нужно создать файл с именем composer.json. Это можно сделать через терминал, просто введя touch команду, или вы можете создать ее в своей среде IDE.
Важная вещь, которую следует вынести из этого, это то, что есть src каталог, потому что это каталог, который включает наши файлы PHP, и это каталог, который мы хотим пронюхать.
Базовый файл Composer
С учетом сказанного, вот базовый composer.jsonфайл, который вы можете использовать в своих проектах на основе предыдущей серии и на основе того, что опубликовано ниже :
{
"name": "pressware/demo-wordpress-plugin",
"description": "This file is used to show how to configure a WordPress plugin using Composer.",
"autoload": {
"psr-4": {
"Pressware": "src/"
}
},
"require-dev": {
"phpro/grumphp": "^0.11.6",
"phpmd/phpmd": "^2.6",
"phpunit/phpunit": "5.7.21",
"nikic/php-parser": "^3.0",
"sebastian/phpcpd": "^3.0",
"povils/phpmnd": "^1.1",
"squizlabs/php_codesniffer": "^3.0",
"jakub-onderka/php-parallel-lint": "^0.9.2",
"sensiolabs/security-checker": "^4.0"
}
}
Глядя на файл выше, вот как его разобрать:
- Строки 2 и 3 дают небольшое описание плагина. Это также другие области в этом файле, чтобы дать больше информации о том, что необходимо сделать.
- Строки с 4 по 8 важны, потому что они объясняют, что мы используем PSR-4 для автозагрузки и что все файлы попадают в пространство имен верхнего уровня
Presswareи что файлы PHP находятся вsrcкаталоге. - Строки 9–18 охватывают все файлы, описанные в предыдущей серии.
Затем введите следующую команду в своем терминале:
$ composer install
И это установит эти пакеты.
Как насчет коммитов?
Чтобы убедиться, что вы правильно обрабатываете коммиты, важно настроить GrumPHP так, чтобы он просматривал файлы. Но я посмотрю на это в следующем посте.
А пока, возможно, это хорошая возможность установить демонстрационный плагин и попрактиковаться с приведенным выше кодом. Настроить его правильно с первого раза может быть сложно. К счастью, многие ошибки вывода действительно легко понять, поэтому их относительно просто устранить.