Как создать файл composer json

Обновлено: 06.07.2024

Язык программирования 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 могут иметь два уровня стабильности:

Уровень стабильности пакета определяет его разработчик. Эта проблема решается чуть сложнее, надо поменять минимальный уровень стабильности для вашего проекта на 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 появился и увеличивается каталог библиотек, которые позволяют реализовать если не всё, то очень многое.

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


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

Руководство по использованию Composer для начинающих

Composer – это пакетный менеджер зависимостей, предназначенный для упрощения загрузки и установки сторонних php библиотек в проект. Например, с помощью него можно очень просто добавить в разрабатываемый проект php пакеты, а также развернуть другие проекты, которые распространяются вместе с файлом «composer.json» .

«composer.json» - это текстовый файл, в котором в формате JSON описаны все сторонние пакеты от которых зависит данный проект.

Например, для того чтобы в некоторый разрабатываемый проект добавить сторонние библиотеки, в нём можно просто создать «composer.json» и описать в этом файле все необходимые зависимости. После этого для установки всех требуемых внешних php пакетов в проект достаточно будет ввести в консоли всего одну команду ( composer install ).

Другой вариант заключается в применении команды require . В этом случае самостоятельно создавать файл «composer.json» не нужно. composer require – это команда для установки php пакетов в проект посредством Composer. Кроме установки данная команда также автоматически его пропишет в файл «composer.json» . В дальнейшем для того, чтобы скопировать этот проект, например на другой компьютер, вам не нужно будет переносить туда все внешние пакеты, достаточно будет переместить туда только файл «composer.json» . Установка всех зависимостей на этом компьютере будет осуществляться уже посредством ввода всего одной команды ( composer install ).

При использовании команды require , она ещё выполняет создание файла «composer.json», если его ещё в нет проекте.

Кроме этого, Composer применяется не только для установки php библиотек. С помощью Composer осуществляется также установка различных php фреймворков (Laravel, Yii2, Symfony и др.) и CMS (Drupal, MODX 3 и др.).

Composer представляет собой обычный php скрипт, т.е. программу, написанную на языке php.

Основная цель этой программы заключается в том, чтобы предоставить веб-разработчику удобный инструмент, с помощью которого он сможет очень просто загружать и устанавливать пакеты в проект, их обновлять, а также при необходимости осуществлять их удаление. Все эти действия Composer позволяет выполнить с помощью ввода всего одной или нескольких команд. Удобно, не правда ли?

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

Загрузку сторонних библиотек Composer выполняет в папку «vendor», которую данный php скрипт создаёт в корневой директории проекта. Кроме этого, он ещё создаёт специальный файл «autoload.php», включив который в проект вы сразу же подключите к нему все ранее загруженные им библиотеки.

Дополнительно при загрузке сторонних библиотек Composer генерирует ещё файл «composer.lock» . Если «composer.json» - это главный файл Composer, в котором содержится описание основных пакетов, включая требования к их версиям, то «composer.lock» - это файл, содержащий уже не требования, а реальные версии пакетов, которые им были установлены на компьютер пользователя.

Основное назначение файла «composer.lock» заключается в полном сохранении среды, в которой осуществлялась разработка и тестирование проекта.

Например, если вы захотите скопировать проект в какое-то другое место без переноса файла «composer.lock» , то выполнив в нём команду composer install , вы можете получить другие версии пакетов. Эта может случиться из-за выхода новых версий как основных пакетов, описанных в файле «composer.json» , так и их зависимостей, зависимостей их зависимостей и т.д. Например, представим что выход новых версий основных пакетов не произошёл, но обновились версии у пакетов, от которых зависят основные пакеты. В результате установки работающего проекта, можем получить неработоспособный, если в какой-нибудь новой версии одного из этих пакетов была допущена ошибка. Поэтому если вы хотите сохранить полностью среду, то при копировании проекта необходимо дополнительно включать в проект файл «composer.lock» .

Например, разворачивая проект на production, включающий в себя файл «composer.lock» , вы получите те же версии зависимостей, которые у вас были при разработке и тестировании.

Работа с Composer осуществляется в основном в консольном или терминальном режиме, т.е. с помощью ввода команд через командную строку.

Если вы использовали npm, то Сomposer – это нечто подобное, только не для «node.js», а для php.

Как установить Composer

Установка Composer может выполняться по-разному. Она также зависит от используемой среды и операционной системы. Рассмотрим различные варианты.

Установка Composer в Ubuntu, выполняющейся в подсистеме Windows для Linux (WSL)

Как установить локальный веб-сервер для разработки php проектов на подсистему Windows для Linux в Windows 10 можете ознакомиться в этой статье.

Для установки Composer в Windows 10 на подсистему Windows для Linux (WSL) необходимо выполнить следующие команды:

Phar — это исполняемые файлы (программы), которые выполняются посредством php интерпретатора.

Если при установке php пакетов у вас выводиться ошибки на отсутствие прав записи в каталог «

Для установки Composer глобально , т.е. чтобы он был доступен с помощью команды composer необходимо дополнительно выполнить ещё следующую команду:

Эта команда переместит файл «composer.phar» из директории пользователя в директорию «/usr/local/bin» и уберёт у него расширение «phar».

Установка Composer на OpenServer (в Windows)

В OpenServer по умолчанию уже установлен Composer. Находится он в зависимости от выбранной версии PHP (устанавливается в настройках OpenServer) в директории «OSPanel\modules\PHP_*\».

Работа с Composer в OpenServer по умолчанию осуществляется в собственной консоли. Для того чтобы открыть эту консоль необходимо нажать на значок Open Server правой кнопкой мыши в области уведомлений и в открывшемся контекстном меню найти соответствующий пункт.

Пункт в контекстном меню OpenServer для открытия консоли

В консоли для проверки того, что Composer подключен, например, можно ввести команду:

Консоль OpenServer

Эта команда также отобразит версию Composer.

Установка Composer на хостинг

Для установки Composer на хостинг, можно просто скачать данную программу самостоятельно, а затем загрузить её в корневую директорию проекта, например, с помощью FTP.

Самостоятельная загрузка нужной версии Composer выполняется со страницы «Download». Версии программы на данной странице расположены в разделе «Manual Download».

Выполнение команд на удалённом сервере обычно осуществляют с помощью SSH. По умолчанию на shared хостингах данный сетевой протокол выключен. Для его включения необходимо найти соответствующий пункт в панели управления, открыть его и нажать в нем на кнопку «Включить SSH».

Если вы пользователь Windows 10, то клиент SSH включен в систему по умолчанию. Поэтому для выполнения команд на удаленном сервере, можно в этой версии Windows не устанавливать никакой дополнительный софт, а например, воспользоваться программой «Командная строка» или «Windows PowerShell».

Выполнение Composer команды на хостинге

Основные команды Composer

Разберем основные команды Composer для начинающих.

Если вы используете «composer.phar» локально, то приведённые команды необходимо соответственно изменить в зависимости от того как настроено ваше окружение.

Например, если файл «composer.phar» находится в текущем каталоге и интерпретатор php доступен без указания пути к нему, то установка пакета будет осуществляться так:

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

Установка пакета через Composer осуществляется посредством выполнения следующей команды:

vendor — это имя поставщика php пакета, а package — это его название.

Например, добавление в проект пакета twig через composer будет осуществляться так:

Команда require не только загрузит требуемую библиотеку в проект, но и пропишет её ещё в файле «composer.json», т.е. обновит его. Если устанавливаемый пакет зависит от других библиотек, то они также будут установлены или обновлены. Кроме этого ещё будет обновлён файл «composer.lock».

Установка всех пакетов в проект

Установка сразу всех пакетов в проект осуществляется посредством команды:

Эта команда работает следующим образом:

  • проверяет, имеется ли файл «composer.lock»;
  • если файл «composer.lock» существует, то устанавливает версии, указанные в нём;
  • если файла «composer.lock» нет, то разрешает зависимости, описанные в файле «composer.json», создаёт файл «composer.lock» и устанавливает зависимости.

Обновление зависимостей

Команда для обновления установленных библиотек:

Эта команда обновит все зависимости установленные в проекте до последних версий (в соответствии с «composer.json») и файл «composer.lock».

Если необходимо обновить не все пакеты, а один или несколько, то их необходимо перечислить через пробел.

Команда для обновления одной библиотеки:

Удаление пакета

Команда Composer для удаления пакета из проекта:

Для удаления одновременно нескольких пакетов можете их перечислить через пробел:

Обновление Composer

Команда для обновления Сomposer до последней версии:

Обновление lock файла без обновления пакетов

Для обновления файла «composer.lock» без обновления самих пакетов:

Создать новый проект

Создание нового проекта из указанного пакета в текущую директорию выполняется так:

Создание нового проекта в указанную директорию выполняется так:

Вывод всех установленных библиотек

Команда для отображения всех установленных php пакетов:

Проверка валидности файла «composer.json»

Команда с помощью которой можно проверить валидность файла «composer.json»:

Вывод списка всех доступных команд

Вывести на экран все доступные команды Composer можно так:

Очистка внутреннего кэша пакетов Composer

Выполнение очистки внутреннего кэша пакетов Composer осуществляется с помощью команды:

Получение подробной справки по команде

Вывод подробной справки по команде:

Например, вывести подробную инструкцию по использованию команды require можно следующим образом:

Вывести зависимости для указанного пакета

Вывести все зависимости указанного пакета от других можно с помощью команды:

Создание базового варианта файла composer.json с помощью мастера

Примеры использования Composer для установки PHP фреймворков и CMS

Установка фреймворка Laravel в текущую директорию осуществляется через Composer посредством ввода следующей команды:

Установка последней версии фреймворка Yii2 через Composer:

Установка разрабатываемой версии MODX Revolution 3 через Composer:

Установка через Composer нового приложения Symfony, предназначенного для создания традиционных веб-приложений:

Установка Symfony для использования его для создания микросервисов, консольных приложений или API осуществляется так:

Установка Drupal через Composer:

Как удалить Composer

Composer — это файл. В большинстве случаев для удаления его достаточно просто удалить.

Если вы не помните куда был установлен Composer, то просто поищете, например, с помощью встроенной системы поиска операционной системы этот файл.

Но так удалять не всегда корректно, все зависит от того, как вы его устанавливали. Если у инструмента, с помощью которого вы его устанавливали, есть возможность и его удаление, то выполняйте это действие с помощью этого инструмента.

Например, если вы Composer устанавливали с помощью инструмента apt-get, то и используйте его для удаления этой программы.

Например, если вы устанавливали Сopmoser в Windows с помощью программы Composer-Setup.exe, то удаления программы выполняйте стандартным образом через "Приложения и возможности" (только в Windows 10) или через "Удаление или изменение программы".

В этой статье вы узнаете, как создать свой собственный Composer пакет, опубликовать его на GitHub, а так-же зарегистрировать в Packagist.

Подключение Composer пакета к своему проекту

Я вспомнил два варианта подключения:

  • Прописать название пакета в секцию require (require-dev) и выполнить консольную команду composer update
  • Выполнить консольную команду composer require название/пакета

Шаг 0: Определяемся со структурой своего пакета

Минимально, для создания нового пакета нам необходимо создать определенную структуру нашего пакета. Сама структура не имеет значения, вы можете разместить свои файлы в любых папках с произвольными именами, в рамках этой статьи будет предложена такая иерархия:

Шаг 1: Создайте файл composer.json

Создание при помощи консольной команды

Файл composer.json создается автоматически при вводе консольной команды composer init в папке проекта. После ввода команды будет предложено ввести информацию об основных характеристиках пакета, таких как название и описание.

Создание composer.json вручную

Для создания файла вручную следует создать новый файл, назвать его composer.json и заполнить следующим содержимым.

Обратите внимание на секцию autoload, это один из важнейших моментов здесь, вокруг которого и строится магия. В ней находится указание того, что все файлы с пространством имен ctrlv\HelloWorld внутри папки src должны быть загружены автоматически в проект.

Шаг 2: Написание библиотеки

Теперь, когда у нас есть подключенный composer к нашему проекту, можно приступать к написании самой библиотеки. Для этого в файле HelloWorld.php, который находится в папке src напишем вот такой простой класс:

Суть проста. Один статический метод, который просто выводит информацию на экран.

Шаг 3: Пишем пример использования пакета

Наш пакет готов. Писать пример не обязательно, но крайне желательно 🙂

Для начала, давайте выполним консольную команду composer install , которая создаст (обновит) папку vendor в нашем текущем проекте. Это нужно сделать для того, чтобы мы могли подключить автозагрузку композера и пользоваться пространством имен внутри файла examples/example.php.

Следующим шагом будет написание самого файла с примером examples/example.php, который выглядит так, как показано ниже:

Остается только проверить, чтобы все работало так, как мы это и задумали, для этого выполним консольную команду php examples/example.php , результатом работы которой будет вывод приветствия на экран.

php examples/example.php

Шаг 4: Публикуем на github

Прежде чем опубликовать проект на github, давайте выполним конфигурацию проекта, а именно:

  • Создадим файл .gitignore, в который пропишем какие файлы не нужно отслеживать, чтобы лишнее не попало в репозиторий
  • Напишем описание проекта в файле README.md

Теперь, когда все готово, можем загрузить наш код на github:

1) Заходим на github, создаем новый репозиторий


Создание репозитория на github

2) Инициализируем git внутри своего проекта, добавляем файлы, коммитим и пушим на github при помощи команд

Для вводного ознакомления мы установим библиотеку логирования monolog/monolog . Если Вы ещё не установили Composer, обратитесь к главе Введение.

Примечание: для простоты в этом ознакомлении будем считать, что Вы выполнили локальную установку Composer

composer.json : Настройка проекта

Чтобы начать использовать Composer в Вашем проекте, всё, что Вам нужно это composer.json файл. Этот файл описывает зависимости Вашего проекта и может содержать также другие метаданные.

Первым (и часто единственным) делом укажите в composer.json ключ require . Таким образом Вы просто говорите Composer от каких пакетов зависит Ваш проект.

Как Вы можете видеть require принимает объект состоящий из имени пакета (например monolog/monolog ) и версии пакета (например 1.0.* ).

Имя пакета состоит из имени поставщика (vendor) и имени проекта (project name). Часто они будут идентичны - имя поставщика просто существует для предотвращения столкновения наименований. Это позволяет двум разным людям, создать библиотеку с одинаковым именем json , которая затем будет просто названа igorw/json и seldaek/json .

Здесь мы требуем пакет monolog/monolog , поэтому имя поставщика совпадает с именем проекта. Для проектов с уникальным именем такой подход рекомендуется. Это также позволяет позже добавить более смежные проекты в рамках того же пространства имен. Если Вы работаете с библиотекой, это сделает её более легкой и удобной к разделению на меньшие части.

В предыдущем примере мы требуем версию 1.0.* Monolog. Это означает любая версия 1.0 в ветке разработки (development branch). Это эквивалентно сказанному - версия которая соответствует >=1.0 <1.1 .

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

По умолчанию только стабильные релизы принимаются во внимание. Если бы Вы хотели бы также получить зависимости RC, beta, alpha или dev версий, Вы можете это сделать с помощью флагов стабильности (stability flags). Чтобы применить это для всех пакетов, вместо того чтобы делать это для каждой зависимости, Вы также можете использовать настройку минимальная стабильность (minimum-stability).

Чтобы установить зависимости для Вашего проекта просто запустите команду install

Это найдёт последнюю версию monolog/monolog , которая соответствует Вашим ограничениям для этой версии пакета, и скачает его в директорию поставщика vendor . Здесь имеет место соглашение ставить код сторонних производителей в каталог с именем vendor . В случае с Monolog, он будет располагаться в vendor/monolog/monolog .

Совет: Если Вы используете git для вашего проекта, Вам вероятней всего необходимо добавить каталог vendor в файл .gitignore . Вы же не хотите добавить весь этот код в Ваш репозиторий.

Вы заметите, что команда install также создала файл composer.lock

composer.lock - Файл блокировки

После установки зависимостей Composer пишет список точных версий в файл composer.lock . Это блокирует Ваш проект для этих конкретных версий.

composer.lock фиксирует Ваши приложения (наряду с composer.json ) в системе контроля версий.

Это важно потому, что команда 'install' проверяет присутствует ли файл блокировки, и если это так, он загружает указанные там версии (независимо от того, что говорит composer.json ).

Это означает, что любой, кто настраивает проект, будет загружать точно такие же версии зависимостей. Ваш CI сервер, рабочая машина, другие разработчики в Вашей команде, все они и всё работает на одних и тех же зависимостях, что снижает потенциал для ошибок, затрагивающих только некоторые части развертывания. Даже если Вы разрабатываете самостоятельно, через шесть месяцев при переустановке проекта, Вы можете быть уверены, что установленные зависимости по-прежнему работают даже если зависимости выпустили много новых версий с тех пор.

Если файл composer.lock не существует, Composer будет считывать зависимости и версии из composer.json и создаст файл блокировки после выполнения команды update или install .

Это означает, что если какая-либо из зависимостей выпустила новую версию, Вы не получите обновления автоматически. Для обновления до новой версии, используйте команду update . Это получит последнюю соответствующую версию (в соответствии с Вашим файлом composer.json ), а также обновит файл блокировки до новой версии.

Примечание: Composer отобразит предупреждение при выполнении команды install если composer.lock и composer.json не синхронизированы.

Если Вы хотите установить или обновить только одну зависимость, Вы можете сделать это следующим образом:

Примечание: Для библиотек не является необходимым фиксировать файл блокировки, см. также: Библиотеки - Файл блокировки.

Packagist является главным репозиторием (хранилищем) Composer. Репозиторий Composer это основной источник пакетов: место, откуда Вы можете получить различные пакеты. Packagist стремится быть центральным репозиторием который используют все. Это означает, что можно автоматически затребовать require для любого пакета который доступен здесь.

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

Для библиотек которые поддерживают автозагрузку Composer создаёт файл vendor/autoload.php . Вы можете просто включить этот файл в проект и библиотека автоматически загрузится.

Это делает библиотеку очень простой в использовании третьей стороной. Например: Если Ваш проект зависит от Monolog, Вы можете просто начать использовать классы из него, и они будут видны.

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

Composer зарегистрирует PSR-4 автозагрузку для пространства имен Acme .

Вы определяете сопоставления из пространства имен в директории. Каталог src будет корнем Вашего проекта, на том же уровне, как и vendor каталог. Например файл src/Foo.php будет содержащий класс Acme\Foo .

После добавления поля autoload (автозагрузка), нужно перезапустить dump-autoload для повторного создания файла vendor/autoload.php .

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

В дополнение к PSR-4 автозагрузке Composer также поддерживает PSR-0, classmap и файловую автозагрузку. Смотрите раздел autoload (автозагрузка) для получения большей информации.

Примечание: Composer предоставляет свой собственный автозагрузчик. Если Вы не хотите использовать его одного, Вы можете просто включить файлы vendor/composer/autoload_*.php которые возвращают ассоциативные массивы, позволяя Вам настроить свой собственный автозагрузчик.

От автора: Очень часто при разработке веб-приложений, особенно крупных веб-проектов, необходимо использовать различные сторонние библиотеки. К примеру, это может быть php-фреймворк, либо шаблонизатор, либо движок форума, или все эти компоненты вместе. В данном уроке мы с Вами рассмотрим менеджер зависимостей Composer, при помощи которого можно легко скачать и установить необходимые библиотеки

скачать урок

Если мы используем несколько сторонних библиотек, все их необходимо правильно установить и подключить к разрабатываемому скрипту. В лучшем случае у каждой библиотеки – необходимо подключить один главный файл, при этом, если мы используем три сторонних библиотеки, значит необходимо подключить три файла.

Но что если одна из библиотек зависит по своему функционалу, еще от дополнительных библиотек, в этом случае их так же нужно скачивать и подключать. То есть при использовании нескольких библиотек возникают некоторые неудобства связанные с их установкой.


Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока

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

Установка Composer


Здесь на странице Documentation приведено подробное описание по установке и работе с данным менеджером (правда, на английском языке).


Composer можно установить на операционную систему Windows двумя способами:

вручную, используя командную строку;

автоматически, используя специальный файл, ссылку на который Вы найдете на странице документации, в разделе установки под ОС Windows.

В данном уроке мы с Вами рассмотрим ручной способ установки инструмента Composer. Сразу же хотел бы отметить, что Сomposer, представляет собой файл composer.phar, который обычно располагается в папке с интерпретатором языка PHP. Поэтому перед установкой желательно просмотреть данную папку, потому как, к примеру в программном обеспечении OpenServer (в модулях PHP), Composer уже установлен.

Итак, запустив веб-сервер, открываем командную строку (напомню, что для Windows 7 командную строку можно открыть, если в поиске меню Пуск ввести cmd), и переходим в папку, в которую установлен интерпретатор языка PHP. Для этого используется команда cd: cd путь к папке




Бесплатный курс по PHP программированию

Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC

В курсе 39 уроков | 15 часов видео | исходники для каждого урока



Данная команда, создаст в папке интерпретатора языка PHP, специальный файл composer.bat, при помощи которого, можно обращаться к менеджеру зависимостей, используя только имя composer, и при этом, находясь в любой папке из под командной строки. Но при этом в системной переменной path, необходимо прописать путь к папке, в которую установлен интерпретатор языка PHP:


Установка необходимых библиотек

Для начала давайте условимся, что для нашего скрипта потребуются следующие библиотеки:

Читайте также: