Использование Composer с WordPress
Опубликовано: 2022-06-30WordPress существует с 2003 года и стал инструментом по умолчанию для большинства людей, желающих создать веб-сайт. Несмотря на то, что он прошел долгий путь от своих корней в качестве движка для блогов, базовая технология не сделала таких же скачков, как пользовательский опыт.
Разработка WordPress по-прежнему вращается вокруг многих стандартов, которые существовали в 2003 году. Хотя это может сделать его более доступным для людей из-за более низкого технического понимания, это также означает, что многие новые ресурсы разработки несовместимы с WordPress из коробки.
Сегодня мы собираемся взглянуть на один из этих новых инструментов под названием Composer. Давайте посмотрим, как он может вписаться в ваш рабочий процесс WordPress, и обсудим, почему вы можете попробовать его.
Что такое Композитор?
Каждый бит кода, который вы пишете, имеет зависимости. Если вы пишете плагин для WordPress, ваша самая большая зависимость — это сам WordPress. Без основных функций, которые предоставляет WordPress, вполне вероятно, что ваш плагин вообще бесполезен. Помимо самого WordPress вам может понадобиться современный клиент SOAP, такой как nusoap, для взаимодействия с API на основе SOAP.
В прошлом большинство людей просто копировали репозиторий nusoap в каталог своего плагина, а затем включали файлы, необходимые для использования библиотеки. Здесь Composer может вмешаться и упростить управление вашими зависимостями.
Composer — это менеджер зависимостей. Он специально разработан для упрощения установки и управления зависимостями. Это может стать особенно важным, если вы работаете в команде и хотите убедиться, что каждый член команды использует одни и те же библиотеки при разработке.
По своей сути Composer представляет собой файл JSON, в котором подробно описаны установленные вами зависимости и версии зависимостей, которые вы хотите использовать. Ниже вы можете увидеть базовый пример, который включает зависимость nusoap.
{
"требовать": {
«эконея/нусоап»: «^0.9.10»
}
}
Когда я запускаю composer require econea/nusoap в своем плагине, он устанавливает для меня nusoap и блокирует его до указанной версии. В этом случае я использую 0.9.10 и буду продолжать использовать его, если не скажу Composer обновить зависимость.
Это имеет преимущество перед простой загрузкой и включением nusoap, потому что я могу использовать обновление композитора для обновления всех моих зависимостей без необходимости смотреть, есть ли обновления, и вручную загружать их в мой проект. Composer берет на себя управление ресурсами на этом уровне.
Начало работы с Composer
Установка composer довольно проста.
В Windows
Если вы работаете в Windows, для упрощения процесса предусмотрен установщик. Он установит последнюю версию Composer и сделает ее доступной для ваших проектов по всему миру.
Linux/Юникс/macOS
На любой из этих платформ у вас есть еще несколько шагов, чтобы настроить Composer. Для начала запустите команды, необходимые для загрузки Composer и его настройки.
php -r «копировать ('https://getcomposer.org/installer', 'composer-setup.php');»
php -r «if (hash_file('sha384', 'composer-setup.php') === '756890a4488ce9024fc62c56153228907f1545c228516cbf63f885e036d37e9a59d27d63f46af1d4d07ee0f763181c проверено; } else { echo 'Установщик поврежден'; развязать('композитор-setup.php'); } эхо PHP_EOL;”
php композитор-setup.php
php -r «отключить ('composer-setup.php');»
Затем вы захотите запустить Composer глобально для локальной разработки, поэтому нам нужно настроить установку по умолчанию, чтобы убедиться, что она доступна в любое время, когда мы хотим использовать Composer. Вы можете переместить Composer, чтобы он был глобально доступен, с помощью следующей команды, выполняемой из того же каталога, из которого вы только что загрузили Composer.
мв composer.phar /usr/local/bin/composer
Обновление Композитора
В Windows и macOS все, что вам нужно сделать для обновления до последней версии Composer, — запустить самообновление композитора. Если вы работаете в Linux/Unix, вам нужно запустить sudo apt update && upgrade, чтобы ваша система проверяла наличие последних версий, после чего вы можете запустить самообновление композитора, чтобы получить последнюю версию.
Теперь, когда вы все настроили, давайте рассмотрим использование Composer для установки WordPress.
Установите WordPress с Composer
Что если вы хотите управлять всем сайтом с помощью Composer? Во-первых, вам нужно решить, является ли WordPress зависимостью проекта или ядром проекта? Ага, немного напряг мозги.
WordPress можно считать зависимостью проекта, потому что конечная цель для ваших клиентов не в том, чтобы установить WordPress. Им нужен магазин или блог, и это зависит от того, установите ли вы WordPress. Это позиция, которую занимает такой проект, как Roots, с его настройкой Bedrock WordPress на основе Composer под названием Bedrock.
Использование Bedrock означает, что вам не нужно сообщать Composer о WPackagist, потому что он уже настроен. С него я рекомендую вам начать, если вы хотите управлять всем сайтом с помощью Composer.
Чтобы установить Bedrock, выполните следующую команду.
композитор создать проект корни / коренная порода
Это даст вам следующую файловую структуру.
├── composer.json
├── .env
├── конфиг
│ ├── application.php
│ └── среды
│ ├── development.php
│ ├── staging.php
│ └── production.php
├── продавец
└── сеть
├── приложение
│ ├── мю-плагины
│ ├── плагины
│ ├── темы
│ └── загрузки
├── wp-config.php
├── index.php
└── wp
Это сильно отличается от стандартной настройки WordPress. Для начала у вас есть файл composer.json в корне установки. Здесь вы увидите свою конфигурацию Composer.
В вашем файле .env вы можете хранить различные конфигурации базы данных. Это необходимо, потому что ваш локальный сайт и ваш живой сайт будут иметь разные пароли к базе данных и имена пользователей. Файл wp-config.php по умолчанию будет понимать переменные, которые вы указали в файле .env, потому что Bedrock использует эти переменные вместо жесткого кодирования в информации о подключении к базе данных.
Ваш файл .env следует игнорировать в вашем репозитории Git. Когда вы настраиваете новый сайт, вы добавляете к нему новый файл .envfile с необходимой информацией о конфигурации базы данных.
Есть несколько других переменных, которые вам нужно настроить здесь, чтобы начать работу с Bedrock, и все они подробно описаны в их документации.
В папке config находятся различные конфигурации по умолчанию для сред, которые вы будете использовать. В процессе разработки это включает отчеты об ошибках, а в рабочих средах гарантирует, что регистрация ошибок не будет мешать бесперебойной работе вашего сайта.
Используя Bedrock в качестве основы, теперь вы можете использовать Composer для установки плагинов WordPress через WPackagist.
WPackagist — это зеркало темы WordPress и хранилища плагинов. Это необходимо, потому что по умолчанию большинство плагинов и тем недоступны для установки Composer. Зеркало добавляет необходимые файлы для каждого плагина, чтобы можно было использовать Composer для управления плагинами.
Если вы хотите установить WooCommerce в свою установку WordPress на основе Bedrock, вам нужно сначала потребовать WooCommerce, composer require wpackagist-plugin/woocommerce, затем вам нужно указать Composer установить зависимости, composer install.
Теперь вы можете перейти в административную область вашей установки WordPress, активировать WooCommerce и приступить к созданию своего сайта. Чтобы обновить WooCommerce при выходе новой версии или обновить WordPress, вам нужно запустить composer update.
Вот где проект на основе Composer может столкнуться с небольшими проблемами. Если вы запускаете свои обновления через администратора WordPress, у вас будет несоответствие между тем, что ожидает Composer, и тем, что WordPress установил. Если вы собираетесь использовать Composer, используйте его в качестве инструмента обновления и не работайте через администратора WordPress.
Когда следует использовать Composer ?
Я уверен, что многие из вас задаются вопросом, почему Composer — такой отличный инструмент для разработки WordPress. WordPress не создавался с расчетом на Composer, поэтому для работы с ним вам придется пройти через некоторые препятствия, чтобы заставить его работать хорошо.
Для разработчиков плагинов и тем есть очевидный факт, что Composer может упростить работу с зависимостями, которые вам нужно привнести из более широкой экосистемы PHP. Для разработчиков WordPress аргумент менее ясен. Некоторым нравится использовать Composer для управления всем сайтом, как это делает Roots. Это может позволить вам иметь меньше файлов, управляемых Git, но мне это никогда не казалось веским аргументом.
Мне нравится, что Composer может упростить создание разных зависимостей для разных сред. Затем вы можете использовать процесс развертывания для развертывания этих зависимостей в своих средах без необходимости управлять ими вручную.
Как разработчик, вы также должны учитывать потребности вашего клиента. Если у них нет команды разработчиков для долгосрочного управления сайтом, у них могут возникнуть проблемы с нестандартной установкой WordPress. В некоторых случаях их хосты могут сказать им, что поддержка недоступна, потому что они не используют обычный способ установки и использования WordPress. Когда вы обслуживаете клиентов, вам всегда нужно сбалансировать крутую технологию, которую вы используете, с тем, что клиент может использовать в долгосрочной перспективе.
Только по этой причине я не использую Composer в своих проектах полного сайта. Мои клиенты будут управлять ими изо дня в день в течение многих лет, и я не хочу ставить никаких дополнительных барьеров. Мы оба хотим, чтобы их сайты работали без сбоев долгие годы.
Если вы хотите улучшить свои навыки работы с PHP с помощью современных технологий, вам обязательно стоит взглянуть на то, как Composer может вписаться в ваши рабочие процессы WordPress.