Нажмите "Enter" для перехода к содержанию

Как пользоваться Composer

0

Язык программирования PHP очень стремительно развивается. Ещё несколько лет назад огромным количеством библиотек на все случаи жизни мог похвастаться только Python. Однако сейчас уже разработано огромное количество библиотек для PHP, и все они доступны для установки буквально в несколько команд.

Для этого можно использовать пакетный менеджер composer. Утилита позволяет не только устанавливать сторонние пакеты, но и обновлять их при выходе новых версий, разрешать зависимости, а также очень легко создавать пакеты для своих библиотек. В этой статье мы рассмотрим, как пользоваться Composer для управления пакетами в PHP.

Синтаксис и опции Composer

Первое, что необходимо сказать, Composer — это консольная утилита, у неё нет графического интерфейса, однако это не делает её хуже. Вот её синтаксис:

$ composer опции команда

Опций у самой утилиты не так уж много. Давайте рассмотрим самые полезные:

  • -h — вывести справку по утилите;
  • -q — сокращённый вариант вывода;
  • -V — показать версию утилиты;
  • -n — не задавать интерактивных вопросов;
  • -v, -vv,-vvv — настройка подробности вывода;
  • -d — использовать указанную рабочую директорию.

Более интересны команды, которые вы будете постоянно использовать:

  • archive — архивирует текущий проект в качестве библиотеки для отправки в Сеть;
  • check-platform-reqs — проверяет, соблюдены ли системные требования;
  • create-project — создаёт проект на основе пакета в указанную директорию;
  • depends — выводит зависимости пакета;
  • dump-autoload — обновляет систему автозагрузки классов;
  • exec — позволяет выполнять скрипты из установленных пакетов;
  • init — создаёт пустой проект в текущей папке;
  • list — выводит список доступных команд;
  • outdated — выводит список пакетов, для которых есть обновления;
  • prohibits — выводит названия пакетов, которые мешают установить указанный пакет;
  • search — поиск пакетов в репозиториях;
  • self-update — обновление Composer до последней версии, работает только при локальной установке;
  • show — информация о пакете;
  • update — обновляет все пакеты до самой актуальной версии.

Большинство из этих опций мы разберём чуть ниже, в примерах использования composer. А пока давайте посмотрим, как его установить.

Установка Composer

Прежде, чем что-либо делать, утилиту надо установить. Инсталлировать Composer можно глобально для всей операционной системы или только в опредёленную папку. Для глобальной установки в Ubuntu используйте команду:

sudo apt install composer

Кроме того, существует возможность установки утилиты в ту папку, в которой будет ваш проект. Для этого сначала создайте папку и перейдите в неё:

mkdir new_project && cd new_project

Затем скачайте последнюю версию утилиты такой командой:

php -r «copy(‘https://getcomposer.org/installer’, ‘composer-setup.php’);»

Установка Composer выполняется командой:

После установки в директории появится файл Сomposer.phar, который и следует запускать для работы с утилитой. В Windows вы можете установить Composer только таким способом. Дальше в статье я буду считать, что утилита установлена глобально в системе, но дела это не меняет, просто будет отличаться имя исполняемого файла:

$ php ./composer.phar команды

Важно отметить, что для работы последней версии утилиты необходимо, чтобы в вашей системе была установлена версия PHP не ниже 7.0. Иначе утилита установится, но во время запуска будут выдаваться ошибки. Если вы используете панель управления, в которой есть несколько версий PHP, то нужно передать путь к утилите бинарному файлу PHP нужной версии, например:

$ /opt/php7.0/bin/php7.0 ./composer.phar команды

Путь к бинарному файлу будет отличаться в зависимости от способа установки PHP, панели и версии интерпретатора.

Версия утилиты, установленная из официального сайта, будет, как правило? намного свежее, чем из репозиториев:

php composer.phar -V

Чтобы удалить Composer, достаточно удалить его файлы из папки, куда он был установлен. Чтобы обновить Composer до последней версии, выполните:

php composer.phar self-update

Теперь пора переходить к примерам работы с Composer.

Как пользоваться Composer

1. Проект на основе пакета

Чаще всего вы будете разворачивать проекты Composer на основе уже существующих пакетов. В этом случае утилита берёт пакет из репозитория и просто распаковывает его в текущую папку, а все зависимости уже помещаются в папку vendor. Для этого используется команда create-project. Давайте создадим проект на основе пакета slim/slim4-skeleton:

composer create-project slim/slim-skeleton ./

Вторым параметром утилите надо передать папку, в которой будет развёрнут проект. В данном случае это текущая папка. После завершения установки вы получите уже развёрнутое приложение и можете начинать его модифицировать.

2. Установка пакетов

Для установки пакетов в Composer используется команда require. Утилита установит нужный пакет в подпапку vendor, добавит его в автозагрузку и в файл composer.json. Например, установим пакет illuminate/eloquent:

composer require illuminate/eloquent

Кроме того, composer позволяет устанавливать пакеты, которые будут доступны только для разработчика. Для этого используйте опцию —dev:

composer require —dev phpunit/phpunit

Бывают случаи, когда пакет не хочет устанавливаться из-за несовместимости с платформой. В первую очередь надо убедится, что все необходимые ему расширения PHP в системе установлены. Если же ваша консольная версия PHP использует другие расширения, а сам пакет будет использоваться только с веб-сервером, можно отключить проверку системных требований пакета с помощью опции —ignore-platform-reqs:

composer require —ignore-platform-reqs illuminate/eloquent

Ещё одна ошибка, которую вы можете получить — это не соответствие минимальной стабильности пакета. Например:

имя_пакета requires ещё_один_пакет -> satisfiable by точное_имя_этого_пакета but these conflict with your requirements or minimum-stability

Все пакеты Composer могут иметь два уровня стабильности:

  • stable — стабильный;
  • dev — находится в разработке.

Уровень стабильности пакета определяет его разработчик. Эта проблема решается чуть сложнее, надо поменять минимальный уровень стабильности для вашего проекта на dev. Откройте файл composer.json и под строчкой License добавьте следующую строчку:

Или, если в файле уже есть строчка minimum-stability, необходимо заменить её значения со stable на dev. После этого вы сможете установить пакет composer, который вам необходим. Напоминаю, что все команды Сomposer аналогичны, даже если Сomposer на хостинге, а не на локальной машине или VPS-сервере, надо только указать верный путь к его исполняемому файлу.

3. Удаление пакетов

Чтобы удалить пакет, который вам больше не нужен, используйте опцию remove:

composer remove illuminate/eloquent

Аналогичным образом удаляется пакет для разработчиков:

composer remove —dev illuminate/eloquent

4. Обновление пакетов

Чтобы в ваших пакетах не было уязвимостей и старых проблем, необходимо регулярно их обновлять. Для этого используется команда update. Обратите внимание, что обновляются пакеты только в текущей директории, а не по всей системе, поэтому обновлять придётся каждый проект по отдельности:

И для пакетов разработчиков:

composer update —dev

5. Сброс автозагрузки

Бывает, что вы создали новый класс или установили пакет, но классы из него всё ещё не видны, и при попытке обратится к ним вы получаете ошибку. В таком случае следует обновить кэш автозагрузки Composer:

После этой команды всё должно заработать. Если нет — пакет несовместимый или если это ваш класс, то он не соблюдает стандарт PSR-4.

6. Создание пакета

Теперь вы знаете, как использовать Composer, давайте немного поговорим о создании своих пакетов. Чтобы создать пустой проект в текущей папке, достаточно выполнить команду:

Утилита задаст несколько вопросов:

  • Package name — имя нового пакета в формате: автор/имя;
  • Description — описание;
  • Author — автор пакета;
  • Minimum Stability — стабильность пакета, можно выбрать dev или stable;
  • Package Type — тип проекта, например: library, project, metapackage, composer-plugin;
  • License — лицензия;
  • Depencies — здесь вы можете интерактивно найти пакеты, от которых будет зависеть ваш проект.

На последнем шаге утилита предложит вам проверить, всё ли верно указано в конфигурационном файле:

После чего будет создан файл composer.json, и вы сможете установить нужные пакеты и добавлять свои исходные файлы. Я не буду писать здесь про автозагрузку PSR-4 и другие возможности composer.json, так, как это уже выходит за рамки обычного использования утилиты и больше касается разработки.

После того, как проект был создан, вы можете создать в папке проекта git-репозиторий и загрузить его на GitHub или другой сервис. Сразу же после этого ваш пакет можно будет установить с помощью Composer в любой другой проект, просто добавив его репозиторий.

7. Установка пакетов из сторонних репозиториев

Сначала нужно добавить ссылку на репозиторий в composer.json. Я предполагаю, что ваш репозиторий публичный, значит никаких ключей авторизации не понадобится:

«repositories»: [
<
«type»: «vcs»,
«url»: «ссылка на git репозиторий»
>
]

Секцию repositories надо добавлять на тот же уровень, что и license. и другие основные секции. Затем можно просто установить свой пакет:

composer require sergiy/selenium-chrome-library

После этого папка пакета появится в подпапке vendor, а его классы будут добавлены в автозагрузку.

Выводы

В этой статье мы разобрались, как пользоваться Composer для установки различных пакетов PHP, как обновлять эти пакеты, а также как создать свой пакет с программой и применять его в других своих проектах. Не может не радовать, что у PHP появился и увеличивается каталог библиотек, которые позволяют реализовать если не всё, то очень многое.

Нет похожих записей

alt=»Creative Commons License» width=»» />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *