Эта статья была спонсирована AppDynamics . Спасибо за поддержку спонсоров, которые делают возможным SitePoint!
Если вы не жили под камнем, сегодняшний PHP не PHP вашей бабушки; это совершенно другой, гораздо более элегантный и зрелый язык с бесчисленными улучшениями и дополнениями.
Одним из ключевых дополнений является Composer , де-факто стандарт для управления зависимостями проекта PHP, который по умолчанию предоставляет доступ к сотням готовых библиотек через Packagist.org .
Я не собираюсь рассказывать о том, как использовать Composer, так как он уже хорошо описан здесь, на SitePoint; особенно этой статьей Александра Коньо.
Вместо этого я подхожу к этому с другой стороны, проводя вас через превосходную шпаргалку Composer , с которой я недавно столкнулся.
Если вы хотите посмотреть краткий видеообзор, воспользуйтесь встроенным ниже. В противном случае продолжайте чтение. Я призываю вас сделать оба.
Как и любой сложный, многофункциональный инструмент, с Composer вы можете сделать так много всего. Например, вы можете использовать файл composer.phar для:
- Добавить поддержку композитора в существующий проект
- Запускать сценарии в ответ на различные события , такие как до и после установки , до и после обновления пакета
- Укажите пользовательские автозагрузчики
- Различать зависимости в зависимости от того, находится ли проект в разработке , тестировании , в реальном времени или в другой конкретной среде
- Используйте сотни доступных пакетов через Packagist.org
Только с помощью этих примеров вы можете увидеть, что есть много функциональных возможностей, а также много, что нужно запомнить .
Итак, пока вы используете его в каждом проекте, знаете ли вы все, что он может предложить? Или вы снова и снова используете один и тот же набор параметров командной строки и параметров конфигурации, не задумываясь о том, что еще доступно?
Я бы посоветовал, если вы похожи на меня, вы в последнем лагере. Сегодня я хочу помочь вам исправить это и действительно получить максимальную отдачу от Composer, пройдя через шпаргалку.
Я уверен, вы поймете, почему это так хорошо заслуживает название; и вскоре вы начнете иметь его на закрепленной вкладке, очень похоже на руководство по PHP. Это так хорошо!
2 ключевые части
По сути, он состоит из двух ключевых частей:
- Переключатели командной строки composer.phar
- Файл composer.json
Ключи командной строки composer.phar
В этом разделе перечислены все ключи командной строки, которые вы можете передать в composer.phar
из командной строки. Более того, наведя курсор мыши на них справа, вы увидите более полное описание того, что делает каждый из них.
В нем перечислены все от самых распространенных, регулярно используемых вариантов до более продвинутых. Вот пример:
- install — который устанавливает зависимости в каталоге vendor
- самообновление — обновляет файл composer.phar до последней версии
- init — устанавливает поддержку композитора в существующем или новом проекте
- validate — который проверяет существующий файл composer.json
- диагностировать — для выполнения автоматических проверок
- архив — который создает архив пакета композитора.
Используя шпаргалку, я узнал, что, передав ключ --optimize
в dump-autoload
, вы можете получить что-нибудь до 20% повышения производительности в своих проектах.
Не слишком потертый, не правда ли? Хорошо, я мог бы выяснить это в ходе тестирования или покопаться в документации, но шпаргалка позволила быстро и легко найти ее.
Конфигурация файла composer.json
Я бы предложил этот раздел, где вы будете проводить большую часть своего времени с шпаргалкой. В то время как вызов composer.phar может быть в значительной степени записан в сценарии, необходимые для каждого проекта конфигурации могут отличаться достаточно регулярно, чтобы каждый раз требовалось множество различных опций.
Так что раздел composer.json определенно ваш друг в этом отношении. Как и в случае с composer.phar, он отображает пример с использованием каждого параметра. В нем перечислены все параметры прямо из самых распространенных, таких как имя , описание , авторы , и их требования, которые предоставляют ключевую информацию о пакете вместе с его зависимостями.
Авторы — хороший пример, показывающий имя , адрес электронной почты , домашнюю страницу и роль двух примеров авторов, которые вы можете увидеть ниже:
"authors": [ { "name": "Xavier Lacot", "email": "[email protected]", "homepage": "http://www.lacot.org", "role": "Developer" }, { "name": "Benjamin Clay", "email": "[email protected]", "homepage": "http://ternel.net", "role": "Developer" } ],
Тогда есть более продвинутые, которые мы, вероятно, используем не так часто.
- поддержка — где вы найдете список вариантов поддержки, когда пользователям нужна помощь
- автозагрузка — где вы можете установить конкретные параметры отображения автозагрузки для автозагрузчика PHP
- репозитории — позволяющие вам выйти за рамки стандартного бэкэнда Packagist, добавить PEAR, использовать инструменты управления версиями, такие как GitHub, Bitbucket или собственные, частные пакеты, использующие Satis .
Вот пример раздела сценариев. Вы можете видеть, что в нем перечислено, как использовать методы статических классов из пространств имен для ответа на несколько событий.
"scripts": { "post-update-cmd": MyVendor\\MyClass::postUpdate", "post-package-install": [ "MyVendor\\MyClass::postPackageInstall" ], "post-install-cmd": [ "MyVendor\\MyClass::warmCache", "phpunit -c app/" ] },
Как и в случае с разделом composer.phar, наведя на них курсор мыши, вы увидите специфику раздела в правой части, а также примеры использования.
Вывод
Я считаю, что это отличный инструмент для получения максимальной отдачи от Composer. Некоторые могут сказать, что на одной странице это недостаточно подробно; Я не согласен
Способ составления шпаргалки, показывающий примеры использования каждой опции командной строки и перечисление полного примера файла composer.json в сочетании с подробным описанием и дополнительными примерами использования каждого аспекта, является элегантным подходом.
Вы можете получить столько информации, сколько вам нужно, без перегрузки. Как вы думаете? Как вы думаете, это может пойти дальше и предоставить больше информации? Или это просто правильная длина? Поделитесь своими мыслями в комментариях.
Так как это Open Source, если вы видите что-то, что нуждается в улучшении, опечатку или вообще хотите добавить больше информации, зайдите туда, раскошелитесь и отправьте запрос на извлечение .
В противном случае наслаждайтесь.