Установка Composer для “чайников” (настройка и базовые команды). Применение и использование Composer для PHP

C omposer – это менеджер зависимостей для PHP. Composer будет использовать все необходимые пакеты PHP, от которых зависит ваш проект и управление ими.

В этой статье мы покажем вам, как установить и использовать Composer на сервере Ubuntu 18.04.

Хотя эта статья написана для Ubuntu 18.04, те же самые шаги можно использовать для Ubuntu 16.04.

Предпосылки

Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo, и у вас установлен PHP на вашей системе Ubuntu 18.04.

Установка Composer

Чтобы установить Composer в вашу систему Ubuntu, выполните следующие действия:

  1. Перед загрузкой и установкой Composer сначала нам нужно установить пакет CLI PHP, который доступен в репозиториях Ubuntu: sudo apt install php-cli
  2. Теперь, когда у нас установлен php cli на нашей машине, мы можем скачать установщик Composer с помощью: php -r "copy("https://getcomposer.org/installer", "composer-setup.php");"

    Приведенная выше команда загрузит файл composer-setup.php в текущий рабочий каталог.

  3. Затем нам нужно проверить целостность данных сценария, сравнив SHA-384 хэш-код с последним хешем установщика, найденным на странице « Публичные ключи/подписи Composer». Мы будем использовать следующую команду wget, чтобы загрузить ожидаемую подпись последнего установщика Composer со страницы Github Composer и сохранить ее в переменной с именем HASH: HASH="$(wget -q -O - https://composer.github.io/installer.sig)"

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

    php -r "if (hash_file("SHA384", "composer-setup.php") === "$HASH") { echo "Installer verified"; } else { echo "Installer corrupt"; unlink("composer-setup.php"); } echo PHP_EOL;"

    Если хеши совпадают, вы увидите следующий вывод:

    Installer verified

    Если хеши не совпадают, вы увидите Installer corrupt . В этом случае вам нужно будет повторно загрузить сценарий установки Composer и дважды проверить значение $HASH переменной. echo $HASH . Как только программа установки будет проверена, вы можете продолжить следующий шаг.

  4. Следующая команда установит Composer в каталог /usr/local/bin: sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer All settings correct for using Composer Downloading... Composer (version 1.7.2) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer

    composer устанавливается как общесистемная команда, и он будет доступен для всех пользователей.

  5. Последний шаг – проверить установку: composer

    Вышеприведенная команда напечатает версию, команды и аргументы Composer.

    ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.7.2 2018-08-16 16:57:12 Usage: command

Если вы хотите установить Composer для каждого проекта, используйте следующую команду, php composer-setup.php , которая создаст файл, указанный composer.phar в вашем текущем рабочем каталоге. Вы можете использовать Composer, запустив./composer.phar .

Начало работы с Composer

Теперь, когда Composer установлен в вашей системе Ubuntu, мы покажем вам, как использовать Composer в проекте PHP.

Первый шаг – создать каталог, который будет корневым каталогом проекта и удерживать файл composer.json . Этот файл описывает ваш проект PHP, включая зависимости PHP и другие метаданные.

Создайте каталог проекта и переключитесь на него с помощью:

Mkdir ~/my-first-composer-project cd ~/my-first-composer-project

Следующим шагом будет инициализация нового composer.json с помощью команды composer require И определение пакета, который мы хотим загрузить.

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

Выполните следующую команду для инициализации нового composer.json и установки пакета Carbon:

Composer require nesbot/carbon Using version ^1.33 for nesbot/carbon ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%) - Installing symfony/translation (v4.1.4): Downloading (100%) - Installing nesbot/carbon (1.33.0): Downloading (100%) symfony/translation suggests installing symfony/config symfony/translation suggests installing symfony/yaml symfony/translation suggests installing psr/log-implementation (To use logging capability in translator) Writing lock file Generating autoload files

Как видно из выхода выше, Composer создаст файл composer.json , и он будет загружать и устанавливать carbon и все его зависимости.

Если вы перечисляете директорию вашего проекта, вы увидите, что он содержит два файла composer.json и composer.lock , и каталог vendor .

Ls -l -rw-r--r-- 1 linuxize users 60 Aug 02 14:04 composer.json -rw-r--r-- 1 linuxize users 6.8K Aug 02 14:04 composer.lock drwxr-xr-x 5 linuxize users 4.0K Aug 02 14:04 vendor

  • Каталог vendor , в котором зависимости проекта сохраняется.
  • composer.lock содержит список всех установленных пакетов, в том числе точных версий пакетов.
  • Описание composer.json PHP-проекта и всех зависимостей PHP.

Вы можете поискать репозиторий Composer Packagist для пакетов PHP.

Composer предоставляет возможности автозагрузки, которые позволяют нам использовать классы PHP без необходимости использования файлов require или include .

Создайте файл с именем testing.php и добавьте следующий код:

Давайте проанализируем код по строкам.

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

Затем преобразуем Carbon\Carbon как Carbon и с последней строкой, мы печатаем текущее время с использованием метода now Carbon.

Запустите скрипт, набрав:

Php testing.php

Результат должен выглядеть примерно так:

Текущее время: 2018-08-02 14:25:05

Позже, если вы хотите обновить свои пакеты PHP, вы можете просто запустить:

Composer update

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

Вывод

Вы узнали, как установить Composer на ваш компьютер . Мы также показали вам, как использовать Cpmposer для создания базового PHP-проекта.

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

Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.

Что это и зачем оно мне надо?

Если у тебя возник этот вопрос, тогда не читай дальше статью и сперва спроси у google “что такое dependency injection?” и зачем тебе нужен dependency manager (в частности ).

Лично у меня уже не существует приложений без composer-а. Особенно при разработке под фреймворк. Вот лишь коренные преимущества использования менеджера зависимостей в проектах:

  • Удобная установка и обновление сторонних пакетов и библиотек
  • Правильный деплоймент
  • Чужой код от сторонних пакетов не коммитится в свой репозиторий, и не мусорит код и статистику
  • Гибкое управление версиями зависимостей

Установка

Тут все максимально просто, но сперва надо определиться с методом использования: один composer для всего localhost-а или каждому проекту свой composer? (можно конечно и комбинировать)

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

Держим Composer вместе с приложением

Команды Composer

install

Установив и собрав свой composer.json можно приступить к установке тех самых пакетов которые мы указали в своем json-файле в блоке “require” и “require-dev”. Для этого мы используем команду install .

Composer install ./composer.phar install php composer.phar install

* Первая команда (строка 1) для тех кто выбрал метод установки единого для всей операционной системы. Вторая и третья нужны всем остальным и отличаются лишь тем, дали вы права на запуск phar-файла либо нет.

При первом запуске команды install мы получим последнюю либо точную версию всех пакетов которые мы указали в json-файле (в зависимости от того как мы указали версию для каждого отдельного пакета). Повторный запуск команды install ни к чему не приведет – и это важный момент!

Во время исполнения install скачает все библиотеки в папку vendor нашего проекта (ниже опишу как сменить этот путь), а рядом с json -файлом будет создан новый файл composer.lock (это снепшот – слепок установленных пакетов с указанием их точных версий). Папку vendor стоит сразу же поместить в .gitignore , дабы случайно не смешать все со своим кодом. А вот lock -файл наоборот, нужно закомитить и отправить в репозиторий. Если удалить папку vendor или некоторые пакеты из него а потом опять вызвать команду install , то все пакеты будут восстановлены с точно теми же версиями которые были установлены при первом вызове install . Так происходит, потому что проверяет наличие lock -файла, и при его наличии игнорирует версии пакетов указанные в json-файле (только если те не были спущены!), и устанавливает версии указанные в lock -файле.

Таким образом, передавая единый lock -файл между всеми разработчиками, команда будет гарантировано иметь одинаковые версии пакетов (думаю не стоит пояснять зачем).

update

При необходимости же обновить версии пакетов до актуальных – вызываем команду update .

Composer update ./composer.phar update php composer.phar update

После чего все пакеты будут обновлены. Так же будет обновлен и lock -файл.

Тут стоит помнить что обновляться пакеты будут в соответствии с форматом версии указанным для каждого из них отдельно в json -файле. Синтаксис указания версий для пакетов хорошо описан в официальной документации .

self-update

Еще одна полезная команда, которая обновит сам .

Composer self-update ./composer.phar self-update php composer.phar self-update

show

./composer.phar show -s -t ./composer.phar show -i -t

Эта команда отображает список установленных пакетов.

Первый пример (с ключом -s ) отобразит дерево пакетов которые мы сами руками указали в json -файле.

Второй пример (с ключом -i ) отобразит абсолютно все установленные пакеты, рекурсивно включая зависимости всех наших первоначальных пакетов.

Ключ -t меняет отображение ответа в стиль дерева зависимостей.

vendor path или как сменить путь установки библиотек

Для изменения пути установки пакетов, необходимо использовать директиву vendor-dir в json -файле. Вот пример:

{ "name": "My Project", "description": "Project description", "homepage": "http://my-project.com/", "config": { "vendor-dir": "/vendor/custom/path" }, "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.*" }, "require-dev": { "zendframework/zftool": "v0.1.0", "zendframework/zend-developer-tools": "dev-master" } }

Заключение

Я постарался описать все основное что может понадобится для знакомства с Composer-ом. Более глубокие фичи лучше изучать по документации . Например: как подключить загрузку собственной библиотеки с github .

А для удобного поиска необходимых пакетов советую пользоваться проектом packagist.org

Если же возникнут вопросы, смело пишите в комментарии.

2014

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

Наверное наиболее часто задаваемым вопросом является использование и установка утилиты Composer. Это де-факто стандарт в области менеджеров зависимостей для PHP. При работе с ним можно не бояться об использовании старых библиотек, которые использует ваш проект, ведь Composer установит нужные библиотеки за вас! В этой статье я не буду рассматривать как использовать этот замечательный инструмент, но расскажу как настроить его взаимодействие с OpenServer.

Обычно, при попытки установить Composer на Windows с установленным и запущенным OpenServer"ом вызывает проблему: Composer не хочет устанавливаться по причине ошибки openssl, которая в вашем проекте выключена.Конечно же, при открытии php.ini через openserver вы обнаружите что соблюли все требования, однако Композер все равно будет ругаться.

Решить это можно довольно просто, всего в 3 шага:

  • Шаг 1 - устанавливаем нужные нам версию PHP и Apache в настройках openserver"а.
    Помните! Версия должна быть не ниже PHP 5.3.2!
  • Шаг 2 - В OpenServer открываем: Дополнительно -> Конфигурация -> PHP .....
    Проверяем наличие раскомментированного extension=php_openssl.dll
  • Шаг 3 - Включаем Консоль OpenServer"a: Дополнительно -> Консоль.
    Коммандами консоли windows переходим в папку используемого php. Я использую php-5.5.6 и моя команда выглядит так: cd modules/php/PHP-5.5.6/

    Затем выполняем комманду:

    Php -r "readfile("https://getcomposer.org/installer");" | php

    После чего, если все успешно вы увидите надпись:

    All settings correct for using Composer Downloading... Composer succesfully installed to: /Composer.phar User it: php composer.phar

Готово! Composer установился и набрав комманду:

Php composer.phar -V

Вы должны увидеть запись подобного рода:

Composer version

Echo @php "%~dp0composer.phar" %*>composer.bat

Она создаст.bat файл и в дальнейшем можно будет работать без указания php composer.phar, просто указывая composer Т.е. команда проверки версии (которая была выше) будет выглядеть так:

Composer -V

Что согласитесь гораздо удобнее.


Меня зовут Андрей Николаев , я разработчик-фрилансер с более чем четырехлетним опытом работы в сфере веб-технологий. Последнее время занимаюсь разработкой и поддержкой lowload и midload проектов, разработкой веб-сайтов на платформе 1С-Битрикс, Yii, Laravel . Предоставляю услуги как разработчика сайта, так и консультанта , а при необходимости и менеджера проекта со стороны заказчика.

Обо мне

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

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

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

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

Установка Composer

Composer – это менеджер зависимостей для интерпретатора языка PHP, если сказать проще – это скрипт, написанный на языке PHP, который скачивает необходимые Вам библиотеки, и автоматически формирует единственный специальный файл, подключив который, Вы подключите все скачанные библиотеки. При этом если необходимые Вам библиотеки зависят от некоторых дополнительных библиотек – они так же будут скачаны автоматически. Скачивание библиотек, осуществляется с официального репозитория пакетов packagist.org.

Как я сказал ранее Composer — это менеджер зависимостей для интерпретатора языка PHP, а значит устанавливается данный инструмент непосредственно в интерпретатор данного языка. При этом, сейчас мы с Вами говорим о интерпретаторе, который установлен на Вашем домашнем компьютере, потому как зачастую, на сервере (на реальном хостинге в интернете) у нас нет доступа к интерпретатору языка PHP. Да и это вовсе не нужно, так как в основном скрипты разрабатываются на домашнем компьютере и переносятся на хостинг по окончанию работы. Конечно, интерпретатор языка PHP у всех может быть установлен по разному, к примеру кто то использует программное обеспечение Denwer, кто то OpenServer, кто отдельную установку PHP, Apache, Mysql, но это совсем не важно так как процесс установки менеджера зависимостей Composer аналогичен для всех случаев.

Перед установкой, давайте ознакомимся с официальным сайтом менеджера зависимостей Composer — https://getcomposer.org/ :

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

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

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

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

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

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

Теперь в соответствии с документацией, необходимо выполнить следующую команду: php -r «readfile(‘https://getcomposer.org/installer’);» | php

Которая, выполнит PHP код readfile(‘https://getcomposer.org/installer’), то есть мы прочитаем удаленный файл. Здесь хотел бы отметить, что в Вашем интерпретаторе, языка PHP, должно быть подключено расширение php_openssl.dll, иначе команда не выполнится.

После выполнения команды мы видим сообщение о том, что установка успешно завершена. Проверить, действительно ли был установлен Composer, можно используя команду, которая покажет его версию: php composer.phar -v

Теперь для удобства работы с ним, давайте выполним еще одну команду: echo @php «%~dp0composer.phar» %*>composer.bat

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

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

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

Теперь, необходимо в специальном файле composer.json (данный файл создаем в папке с разрабатываемым скриптом) описать, что вышеперечисленные библиотеки необходимы для работы будущего скрипта:

{ "require": { "slim/slim":"2.*", "twig/twig":"~1.0", "phpbb/phpbb": "3.1.3-RC2" } }

"require" : {

"slim/slim" : "2.*" ,

"twig/twig" : "~1.0" ,

"phpbb/phpbb" : "3.1.3-RC2"

Как Вы видите, данный файл должен содержать объект в виде json строки. У которого, в свойстве require, описаны те библиотеки, от которых зависит будущий скрипт. Причем, require – это в свою очередь так же объект, свойства которого и есть те библиотеки, которые необходимо скачать. Где имя свойства — это название библиотеки, а значение – это версия скачиваемой библиотеки. Причем название состоит из двух подстрок, разделенных /. Строка до разделителя – это имя поставщика, строка после – это название библиотеки.

Названия и версии библиотек, которые необходимо указывать в файле composer.json, приводятся на официальных сайтах, в разделе установка. К примеру, для шаблонизатора Twig, в документации, в разделе Installation, приведена строка, которую я вписал в файл composer.json:

После составления файла composer.json, открываем командную строку, переходим в папку, разрабатываемого скрипта, и выполняем команду: composer install

И сразу же запускается установка необходимых библиотек.

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

На этом данный урок завершен. Всего Вам доброго и удачного кодирования!



Похожие статьи