- Dependency management
- System Requirements
-
Installation — Linux / Unix / macOS
-
Downloading the Composer Executable
- Locally
- Globally
-
Downloading the Composer Executable
-
Installation — Windows
- Using the Installer
- Manual Installation
- Docker Image
- Using Composer
Composer is a tool for dependency management in PHP. It allows you to declare
the libraries your project depends on and it will manage (install/update) them
for you.
Dependency management#
Composer is not a package manager in the same sense as Yum or Apt are. Yes,
it deals with «packages» or libraries, but it manages them on a per-project
basis, installing them in a directory (e.g. vendor
) inside your project. By
default, it does not install anything globally. Thus, it is a dependency
manager. It does however support a «global» project for convenience via the
global command.
This idea is not new and Composer is strongly inspired by node’s
npm and ruby’s bundler.
Suppose:
- You have a project that depends on a number of libraries.
- Some of those libraries depend on other libraries.
Composer:
- Enables you to declare the libraries you depend on.
- Finds out which versions of which packages can and need to be installed, and
installs them (meaning it downloads them into your project). - You can update all your dependencies in one command.
See the Basic usage chapter for more details on declaring
dependencies.
System Requirements#
Composer in its latest version requires PHP 7.2.5 to run. A long-term-support
version (2.2.x) still offers support for PHP 5.3.2+ in case you are stuck with
a legacy PHP version. A few sensitive php settings and compile flags are also
required, but when using the installer you will be warned about any
incompatibilities.
To install packages from sources instead of plain zip archives, you will need
git, svn, fossil or hg depending on how the package is version-controlled.
Composer is multi-platform and we strive to make it run equally well on Windows,
Linux and macOS.
Installation — Linux / Unix / macOS#
Downloading the Composer Executable#
Composer offers a convenient installer that you can execute directly from the
command line. Feel free to download this file
or review it on GitHub
if you wish to know more about the inner workings of the installer. The source
is plain PHP.
There are, in short, two ways to install Composer. Locally as part of your
project, or globally as a system wide executable.
Locally#
To install Composer locally, run the installer in your project directory. See
the Download page for instructions.
The installer will check a few PHP settings and then download composer.phar
to your working directory. This file is the Composer binary. It is a PHAR
(PHP archive), which is an archive format for PHP which can be run on
the command line, amongst other things.
Now run php composer.phar
in order to run Composer.
You can install Composer to a specific directory by using the --install-dir
option and additionally (re)name it as well using the --filename
option. When
running the installer when following
the Download page instructions add the
following parameters:
php composer-setup.php --install-dir=bin --filename=composer
Now run php bin/composer
in order to run Composer.
Globally#
You can place the Composer PHAR anywhere you wish. If you put it in a directory
that is part of your PATH
, you can access it globally. On Unix systems you
can even make it executable and invoke it without directly using the php
interpreter.
After running the installer following the Download page instructions
you can run this to move composer.phar to a directory that is in your path:
mv composer.phar /usr/local/bin/composer
If you like to install it only for your user and avoid requiring root permissions,
you can use ~/.local/bin
instead which is available by default on some
Linux distributions.
Note: If the above fails due to permissions, you may need to run it again
withsudo
.Note: On some versions of macOS the
/usr
directory does not exist by
default. If you receive the error «/usr/local/bin/composer: No such file or
directory» then you must create the directory manually before proceeding:
mkdir -p /usr/local/bin
.Note: For information on changing your PATH, please read the
Wikipedia article and/or use
your search engine of choice.
Now run composer
in order to run Composer instead of php composer.phar
.
Installation — Windows#
Using the Installer#
This is the easiest way to get Composer set up on your machine.
Download and run
Composer-Setup.exe. It will
install the latest Composer version and set up your PATH so that you can
call composer
from any directory in your command line.
Note: Close your current terminal. Test usage with a new terminal: This is
important since the PATH only gets loaded when the terminal starts.
Manual Installation#
Change to a directory on your PATH
and run the installer following
the Download page instructions
to download composer.phar
.
Create a new composer.bat
file alongside composer.phar
:
Using cmd.exe:
C:bin> echo @php "%~dp0composer.phar" %*>composer.bat
Using PowerShell:
PS C:bin> Set-Content composer.bat '@php "%~dp0composer.phar" %*'
Add the directory to your PATH environment variable if it isn’t already.
For information on changing your PATH variable, please see
this article and/or
use your search engine of choice.
Close your current terminal. Test usage with a new terminal:
C:Usersusername>composer -V
Composer version 2.4.0 2022-08-16 16:10:48
Docker Image#
Composer is published as Docker container in a few places, see the list in the composer/docker README.
Example usage:
docker pull composer/composer
docker run --rm -it -v "$(pwd):/app" composer/composer install
To add Composer to an existing Dockerfile you can simply copy binary file from pre-built, low-size images:
# Latest release
COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
# Specific release
COPY --from=composer/composer:2-bin /composer /usr/bin/composer
Read the image description for further usage information.
Note: Docker specific issues should be filed on the composer/docker repository.
Note: You may also use composer
instead of composer/composer
as image name above. It is shorter and is a Docker official image but is not published directly by us and thus usually receives new releases with a delay of a few days. Important: short-aliased images don’t have binary-only equivalents, so for COPY --from
approach it’s better to use composer/composer
ones.
Using Composer#
Now that you’ve installed Composer, you are ready to use it! Head on over to the
next chapter for a short demonstration.
Basic usage →
Found a typo? Something is wrong in this documentation?
Fork and edit it!
В этой статье рассмотрим, что такое Composer, как его установить и использовать. Другими словами, разберем как его «готовить» для начинающих.
Что такое PHP 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 позволяет выполнить с помощью ввода всего одной или нескольких команд. Удобно, не правда ли?
В качестве репозитория пакетов Composer по умолчанию использует packagist.org.
При установке php пакетов Composer не просто устанавливает их, он также устанавливает все зависимости, от которых эти пакеты зависят. Т.е., например, если загружаемая библиотека будет зависеть от 3 других пакетов, а каждая из них, ещё в свою очередь от нескольких и так далее, то Composer всё это установит автоматически. В противном случае, т.е. без использования Composer, загрузку и установку основных пакетов, а также всех зависимостей придётся выполнять самостоятельно.
Загрузку сторонних библиотек Composer выполняет в папку «vendor», которую данный php скрипт создаёт в корневой директории проекта. Кроме этого, он ещё создаёт специальный файл «autoload.php», включив который в проект вы сразу же подключите к нему все ранее загруженные им библиотеки.
require "path/to/vendor/autoload.php";
Дополнительно при загрузке сторонних библиотек Composer генерирует ещё файл «composer.lock». Если «composer.json» — это главный файл Composer, в котором содержится описание основных пакетов, включая требования к их версиям, то «composer.lock» — это файл, содержащий уже не требования, а реальные версии пакетов, которые им были установлены на компьютер пользователя.
Основное назначение файла «composer.lock» заключается в полном сохранении среды, в которой осуществлялась разработка и тестирование проекта.
Например, если вы захотите скопировать проект в какое-то другое место без переноса файла «composer.lock», то выполнив в нём команду composer install
, вы можете получить другие версии пакетов. Эта может случиться из-за выхода новых версий как основных пакетов, описанных в файле «composer.json», так и их зависимостей, зависимостей их зависимостей и т.д. Например, представим что выход новых версий основных пакетов не произошёл, но обновились версии у пакетов, от которых зависят основные пакеты. В результате установки работающего проекта, можем получить неработоспособный, если в какой-нибудь новой версии одного из этих пакетов была допущена ошибка. Поэтому если вы хотите сохранить полностью среду, то при копировании проекта необходимо дополнительно включать в проект файл «composer.lock».
Например, разворачивая проект на production, включающий в себя файл «composer.lock», вы получите те же версии зависимостей, которые у вас были при разработке и тестировании.
Работа с Composer осуществляется в основном в консольном или терминальном режиме, т.е. с помощью ввода команд через командную строку.
Официальный сайт Composer расположен по адресу https://getcomposer.org
Если вы использовали npm, то Сomposer – это нечто подобное, только не для «node.js», а для php.
Установка Composer может выполняться по-разному. Она также зависит от используемой среды и операционной системы. Рассмотрим различные варианты.
Установка Composer в Ubuntu, выполняющейся в подсистеме Windows для Linux (WSL)
Как установить локальный веб-сервер для разработки php проектов на подсистему Windows для Linux в Windows 10 можете ознакомиться в этой статье.
Для установки Composer в Windows 10 на подсистему Windows для Linux (WSL) необходимо выполнить следующие команды:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
sudo php composer-setup.php
php -r "unlink ('composer-setup.php');"
Первая команда выполняет загрузку скрипта установщика с сайта «getcomposer.org». Вторая команда выполняет запуск этого установщика. В процессе своей работы установщик проверит некоторые настройки «php.ini», предупредит вас, если они установлены неправильно, а затем загрузит последний «composer.phar» в текущий каталог. Последняя или третья команда просто удалит загруженный установщик, который ранее использовался для установки Composer.
Phar — это исполняемые файлы (программы), которые выполняются посредством php интерпретатора.
Если при установке php пакетов у вас выводиться ошибки на отсутствие прав записи в каталог «~/.composer/cache», то в командной строке просто запустите данную команду:
sudo chmod -R a+rw ~/.composer/cache
Для установки Composer глобально, т.е. чтобы он был доступен с помощью команды composer
необходимо дополнительно выполнить ещё следующую команду:
mv composer.phar /usr/local/bin/composer
Эта команда переместит файл «composer.phar» из директории пользователя в директорию «/usr/local/bin» и уберёт у него расширение «phar».
Установка Composer на OpenServer (в Windows)
В OpenServer по умолчанию уже установлен Composer. Находится он в зависимости от выбранной версии PHP (устанавливается в настройках OpenServer) в директории «OSPanelmodulesPHP_*».
Работа с Composer в OpenServer по умолчанию осуществляется в собственной консоли. Для того чтобы открыть эту консоль необходимо нажать на значок Open Server правой кнопкой мыши в области уведомлений и в открывшемся контекстном меню найти соответствующий пункт.
В консоли для проверки того, что Composer подключен, например, можно ввести команду:
composer
Эта команда также отобразит версию Composer.
Если при выполнении этой команды отобразится сообщение, что версия Composer устарела, то её можно обновить. Осуществляется это посредством выполнения следующей команды:
composer self-update
Установка Composer на хостинг
Для установки Composer на хостинг, можно просто скачать данную программу самостоятельно, а затем загрузить её в корневую директорию проекта, например, с помощью FTP.
Самостоятельная загрузка нужной версии Composer выполняется со страницы «Download». Версии программы на данной странице расположены в разделе «Manual Download».
Выполнение команд на удалённом сервере обычно осуществляют с помощью SSH. По умолчанию на shared хостингах данный сетевой протокол выключен. Для его включения необходимо найти соответствующий пункт в панели управления, открыть его и нажать в нем на кнопку «Включить SSH».
Если вы пользователь Windows 10, то клиент SSH включен в систему по умолчанию. Поэтому для выполнения команд на удаленном сервере, можно в этой версии Windows не устанавливать никакой дополнительный софт, а например, воспользоваться программой «Командная строка» или «Windows PowerShell».
Например:
ssh -l логин ip_адрес_сервера
cd public_html/blog
php7.1 composer.phar -v
Основные команды Composer
Разберем основные команды Composer для начинающих.
Если вы используете «composer.phar» локально, то приведённые команды необходимо соответственно изменить в зависимости от того как настроено ваше окружение.
Например, если файл «composer.phar» находится в текущем каталоге и интерпретатор php доступен без указания пути к нему, то установка пакета будет осуществляться так:
php composer.phar require vendor/package
Установка пакета
Установка пакета через Composer осуществляется посредством выполнения следующей команды:
composer require vendor/package
vendor — это имя поставщика php пакета, а package — это его название.
Например, добавление в проект пакета twig через composer будет осуществляться так:
composer require "twig/twig:^2.0"
Команда require не только загрузит требуемую библиотеку в проект, но и пропишет её ещё в файле «composer.json», т.е. обновит его. Если устанавливаемый пакет зависит от других библиотек, то они также будут установлены или обновлены. Кроме этого ещё будет обновлён файл «composer.lock».
Установка всех пакетов в проект
Установка сразу всех пакетов в проект осуществляется посредством команды:
composer install
Эта команда работает следующим образом:
- проверяет, имеется ли файл «composer.lock»;
- если файл «composer.lock» существует, то устанавливает версии, указанные в нём;
- если файла «composer.lock» нет, то разрешает зависимости, описанные в файле «composer.json», создаёт файл «composer.lock» и устанавливает зависимости.
Обновление зависимостей
Команда для обновления установленных библиотек:
composer update
Эта команда обновит все зависимости установленные в проекте до последних версий (в соответствии с «composer.json») и файл «composer.lock».
Если необходимо обновить не все пакеты, а один или несколько, то их необходимо перечислить через пробел.
Команда для обновления одной библиотеки:
composer update vendor/package
Удаление пакета
Команда Composer для удаления пакета из проекта:
composer remove vendor/package
Для удаления одновременно нескольких пакетов можете их перечислить через пробел:
composer remove vendor/package vendor2/package2
Обновление Composer
Команда для обновления Сomposer до последней версии:
composer self-update
Обновление lock файла без обновления пакетов
Для обновления файла «composer.lock» без обновления самих пакетов:
composer update --lock
Создать новый проект
Создание нового проекта из указанного пакета в текущую директорию выполняется так:
composer create-project vendor/package
Создание нового проекта в указанную директорию выполняется так:
composer create-project vendor/package folder
Вывод всех установленных библиотек
Команда для отображения всех установленных php пакетов:
composer show
Проверка валидности файла «composer.json»
Команда с помощью которой можно проверить валидность файла «composer.json»:
composer validate
Вывод списка всех доступных команд
Вывести на экран все доступные команды Composer можно так:
composer list
Очистка внутреннего кэша пакетов Composer
Выполнение очистки внутреннего кэша пакетов Composer осуществляется с помощью команды:
composer clear-cache
Получение подробной справки по команде
Вывод подробной справки по команде:
composer help имя_команды
Например, вывести подробную инструкцию по использованию команды require можно следующим образом:
composer help require
Вывести зависимости для указанного пакета
Вывести все зависимости указанного пакета от других можно с помощью команды:
composer depends vendor/package
Создание базового варианта файла composer.json с помощью мастера
Создание базового варианта файла composer.json с помощью мастера, т.е. посредством ответов на вопросы:
composer init
Примеры использования Composer для установки PHP фреймворков и CMS
Установка фреймворка Laravel в текущую директорию осуществляется через Composer посредством ввода следующей команды:
composer create-project --prefer-dist laravel/laravel
Установка последней версии фреймворка Yii2 через Composer:
composer create-project --prefer-dist yiisoft/yii2-app-basic
Установка разрабатываемой версии MODX Revolution 3 через Composer:
composer create-project modx/revolution www 3.x-dev
Установка через Composer нового приложения Symfony, предназначенного для создания традиционных веб-приложений:
composer create-project symfony/website-skeleton
Установка Symfony для использования его для создания микросервисов, консольных приложений или API осуществляется так:
composer create-project symfony/skeleton
Установка Drupal через Composer:
composer create-project drupal-composer/drupal-project:8.x-dev --no-interaction
Как удалить Composer
Composer — это файл. В большинстве случаев для удаления его достаточно просто удалить.
Если вы не помните куда был установлен Composer, то просто поищете, например, с помощью встроенной системы поиска операционной системы этот файл.
Но так удалять не всегда корректно, все зависит от того, как вы его устанавливали. Если у инструмента, с помощью которого вы его устанавливали, есть возможность и его удаление, то выполняйте это действие с помощью этого инструмента.
Например, если вы Composer устанавливали с помощью инструмента apt-get, то и используйте его для удаления этой программы.
sudo apt-get remove composer
Например, если вы устанавливали Сopmoser в Windows с помощью программы Composer-Setup.exe, то удаления программы выполняйте стандартным образом через «Приложения и возможности» (только в Windows 10) или через «Удаление или изменение программы».
Дополнительно можно удалить папку с внутренним кэшем Composer. В Linux эта папка расположена в «/home//.composer», в Windows – «C:Users\AppDataRoamingComposer».
Contents
- 1 Что такое Composer?
- 2 Скачивание Composer — инсталлятор для Windows
- 3 Установка Composer на Windows 10
- 4 Первая команда в Composer. Как использовать Composer на Windows?
- 5 Другие примеры команд для Composer
- 5.1 Flarum
- 5.2 Laravel
- 6 Описание команд Composer
- 7 Использованные ресурсы для написания статьи
Composer — это пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении. Вы можете описать от каких библиотек зависит ваш проект и Composer установит нужные библиотеки за вас! Причём Composer — это не менеджер пакетов в классическом понимании.
В двух словах как работает Composer:
- У вас есть проект на PHP, который зависит от нескольких библиотек.
- Некоторые из этих библиотек зависят от других библиотек.
- Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
- Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.
Скачивание Composer — инсталлятор для Windows
- Заходим на сайт https://getcomposer.org/
- Заходим в раздел Download
- В подразделе Windows Installer скачиваем Composer-Setup.exe
Установка Composer на Windows 10
Для работы Composer Требуется PHP (необходимо заранее установить на windows php).
Порядок инсталляции Composer на винду:
1. Запускаем дистрибутив с админскими правами:
2. Выполняем поэтапно все пункты инсталлятора (почти всегда нажимать нужно Далее/Next), Только с php нужно выбрать директорию:
Выбираем php.exe в директории с php (инсталляция Php производится отдельно)
Обновляем php.ini (файл с настройками php):
Прокси не нужен
Устанавливаем Composer:
Первая команда в Composer. Как использовать Composer на Windows?
Сразу после инсталляции php и composer, эти команды не будут запускаться в сторонних папках. Если у Вас нет доступа к переменным окружения, то запустить Composer можно следующим образом.
Для примера скачаем с помощью Composer проект для подключения к API (Гугловский PHP проект):
- Создаем на диске С папку C:Composer_install. В ней будем создавать проекты. Создадим проект «New» (папку C:Composer_installNew):
- Скопируем в папку C:Composer_installNew файлы из папки C:ProgramDataComposerSetupbin;
- Запустим команду composer для скачивания проекта google analytics:
C:phpphp.exe composer.phar require «google/apiclient:^2.0» |
Если появится ошибка «Failed to download psr/http-message from dist: You must enable the openssl extension to download files», то нужно включить в php.ini параметр extension=php_openssl.dll, а в composer.json скорей всего понадобится включить строчки:
{ «config»: { «disable-tls»: true, «secure-http»: false } } |
Как настроить переменную окружения PATH для php и composer:
После установки переменных обязательно перезапустите Windows. После рестарта винды команда composer будет запускаться в простом виде:
composer require «google/apiclient:^2.0» |
Другие примеры команд для Composer
Flarum
composer create—project flarum/flarum —stability=beta |
Результат работы composer Для скачивания проекта Flarum:
Laravel
composer global require «laravel/installer» |
Описание команд Composer
Команда Composer | Описание команды |
---|---|
composer require vendor/package |
Добавляет требуемый пакет в файл composer.json и устанавливает его в ваш проект.
Команда |
composer install |
Если файла composer.lock нет, резолвит зависимости исходя из composer.json и создаёт его. Далее, анализирует файл composer.lock , скачивает и устанавливает указанные в нём версии пакетов.Опция --no-scripts полезна для обхода запуска скриптов, указанных в pre- и post- настройках. |
composer update |
Обновляет ваши зависимости до последних версий и обновляет composer.lock .
Команда |
composer update --lock |
Иногда, вы можете получить такое предупреждение:
Это может произойти после того, как вы вручную редактировали Поэтому, чтобы подавить это предупреждение, вы можете просто запустить команду |
composer dump-autoload --optimize |
Если вам нужно обновить загрузчик, т. к. появились новые классы, вы можете выполнить команду dump-autoload чтобы избежать установки или обновления пакетов.
Используйте ключ —optimize для преобразования PSR-0 в автозагрузку как для classmap, чтобы автозагрузчик был наиболее быстрым. Это настоятельно рекомендуется для production (вы можете получить 20% прирост), но может занять немного времени для запуска, так что это на данный момент не сделано по умолчанию. Также вы можете использовать |
composer about |
Краткая информация о Composer. |
composer archive vendor/package |
Создать архив для указанного пакета. Команда также может быть использована для архивирования всего проекта без исключенных/игнорируемых файлов. |
composer browse |
Псевдоним для home , открывает URL пакета или его домашнюю страницу в браузере. |
composer clear-cache |
Псевдоним команды clearcache , очищает внутренний кэш пакетов Composer-а. |
composer config --list |
Позволяет редактировать некоторые основные параметры Composer-а либо в локальном файле composer.json, либо в глобальном файле config.json. |
composer create-project vendor/package dir/ |
Создать новый проект из указанного пакета в указанном каталоге. |
composer depends vendor/package |
Сообщает вам какие другие пакеты зависят от конкретного (указанного) пакета. Вы можете указать какие типы связей (require, require-dev) должны быть включены в листинг. По умолчанию выводятся оба. |
composer diagnose |
Если вы считаете, что нашли ошибку, или что-то ведет себя странно, возможно, вы захотите выполнить команду диагностики для выполнения автоматизированной проверки многих общих проблем. |
composer global |
Команда global позволяет другие команды такие, как install , require или update запускать так, как если бы вы запускали их из каталога COMPOSER_HOME .
Это может использоваться для того, чтобы установить командные утилиты глобально. Если вы добавите |
composer help [command] |
Отображает справки для всех других команд: composer.phar help install . |
composer init |
Создает базовый вариант файла composer.json в текущем каталоге.
При запуске команды, Composer будет интерактивно запрашивать значения полей для заполнения, используя при этом для некоторых полей умные значения по умолчанию. |
composer licenses |
Показать информацию о лицензиях зависимостей. |
composer list |
Выводит список допустимых команд. |
composer remove |
Удаляет пакет из секций require или require-dev: remove vendor/package vendor/package2 . |
composer run-script |
Запустить вручную скрипты, объявленные в composer.json . Просто передайте название скрипта и при необходимости --no-dev , чтобы отключить режим dev. |
composer search ключевые слова |
Поиск пакетов.
Команда поиска позволяет вам искать в репозиториях текущего проекта (см. секцию «repositories» в |
composer self-update |
Обновление самого composer.phar до последней версии.
Запуск команды Также вы можете использовать псевдоним |
composer show |
Список всех установленных пакетов (composer show ).Список всех доступных пакетов ( composer show --all ).Инфо об указанном пакете или его специфичной версии ( composer show vendor/package [версия] ). |
composer suggest |
Выводит список всех пакетов, предложенных установленными. Опционально вы можете передать одно или несколько имён пакетов в формате vendor/package чтобы ограничить вывод только теми, что были предложены указанными. |
composer status |
Если вам часто приходится модифицировать код своих зависимостей, а они были установленны «из исходников» (см. опцию --prefer-source команды require ), токоманда status позволит вам проверить есть ли у вас локальные изменения в любой из них. |
composer validate |
Проверяет файл composer.json .
Вы всегда должны запускать команду |
Использованные ресурсы для написания статьи
- https://phpprofi.ru/blogs/post/52
Introduction
Composer is a tool for dependency management in PHP. It allows you to declare
the libraries your project depends on and it will manage (install/update) them
for you.
Dependency management
Composer is not a package manager in the same sense as Yum or Apt are. Yes,
it deals with «packages» or libraries, but it manages them on a per-project
basis, installing them in a directory (e.g. vendor
) inside your project. By
default, it does not install anything globally. Thus, it is a dependency
manager. It does however support a «global» project for convenience via the
global command.
This idea is not new and Composer is strongly inspired by node’s
npm and ruby’s bundler.
Suppose:
- You have a project that depends on a number of libraries.
- Some of those libraries depend on other libraries.
Composer:
- Enables you to declare the libraries you depend on.
- Finds out which versions of which packages can and need to be installed, and
installs them (meaning it downloads them into your project). - You can update all your dependencies in one command.
See the Basic usage chapter for more details on declaring
dependencies.
System Requirements
Composer in its latest version requires PHP 7.2.5 to run. A long-term-support
version (2.2.x) still offers support for PHP 5.3.2+ in case you are stuck with
a legacy PHP version. A few sensitive php settings and compile flags are also
required, but when using the installer you will be warned about any
incompatibilities.
To install packages from sources instead of plain zip archives, you will need
git, svn, fossil or hg depending on how the package is version-controlled.
Composer is multi-platform and we strive to make it run equally well on Windows,
Linux and macOS.
Installation — Linux / Unix / macOS
Downloading the Composer Executable
Composer offers a convenient installer that you can execute directly from the
command line. Feel free to download this file
or review it on GitHub
if you wish to know more about the inner workings of the installer. The source
is plain PHP.
There are, in short, two ways to install Composer. Locally as part of your
project, or globally as a system wide executable.
Locally
To install Composer locally, run the installer in your project directory. See
the Download page for instructions.
The installer will check a few PHP settings and then download composer.phar
to your working directory. This file is the Composer binary. It is a PHAR
(PHP archive), which is an archive format for PHP which can be run on
the command line, amongst other things.
Now run php composer.phar
in order to run Composer.
You can install Composer to a specific directory by using the --install-dir
option and additionally (re)name it as well using the --filename
option. When
running the installer when following
the Download page instructions add the
following parameters:
php composer-setup.php --install-dir=bin --filename=composer
Now run php bin/composer
in order to run Composer.
Globally
You can place the Composer PHAR anywhere you wish. If you put it in a directory
that is part of your PATH
, you can access it globally. On Unix systems you
can even make it executable and invoke it without directly using the php
interpreter.
After running the installer following the Download page instructions
you can run this to move composer.phar to a directory that is in your path:
mv composer.phar /usr/local/bin/composer
If you like to install it only for your user and avoid requiring root permissions,
you can use ~/.local/bin
instead which is available by default on some
Linux distributions.
Note: If the above fails due to permissions, you may need to run it again
withsudo
.
Note: On some versions of macOS the
/usr
directory does not exist by
default. If you receive the error «/usr/local/bin/composer: No such file or
directory» then you must create the directory manually before proceeding:
mkdir -p /usr/local/bin
.
Note: For information on changing your PATH, please read the
Wikipedia article and/or use
your search engine of choice.
Now run composer
in order to run Composer instead of php composer.phar
.
Installation — Windows
Using the Installer
This is the easiest way to get Composer set up on your machine.
Download and run
Composer-Setup.exe. It will
install the latest Composer version and set up your PATH so that you can
call composer
from any directory in your command line.
Note: Close your current terminal. Test usage with a new terminal: This is
important since the PATH only gets loaded when the terminal starts.
Manual Installation
Change to a directory on your PATH
and run the installer following
the Download page instructions
to download composer.phar
.
Create a new composer.bat
file alongside composer.phar
:
Using cmd.exe:
C:bin> echo @php "%~dp0composer.phar" %*>composer.bat
Using PowerShell:
PS C:bin> Set-Content composer.bat '@php "%~dp0composer.phar" %*'
Add the directory to your PATH environment variable if it isn’t already.
For information on changing your PATH variable, please see
this article and/or
use your search engine of choice.
Close your current terminal. Test usage with a new terminal:
C:Usersusername>composer -V
Composer version 2.4.0 2022-08-16 16:10:48
Docker Image
Composer is published as Docker container in a few places, see the list in the composer/docker README.
Example usage:
docker pull composer/composer
docker run --rm -it -v "$(pwd):/app" composer/composer install
To add Composer to an existing Dockerfile you can simply copy binary file from pre-built, low-size images:
# Latest release COPY --from=composer/composer:latest-bin /composer /usr/bin/composer # Specific release COPY --from=composer/composer:2-bin /composer /usr/bin/composer
Read the image description for further usage information.
Note: Docker specific issues should be filed on the composer/docker repository.
Note: You may also use composer
instead of composer/composer
as image name above. It is shorter and is a Docker official image but is not published directly by us and thus usually receives new releases with a delay of a few days. Important: short-aliased images don’t have binary-only equivalents, so for COPY --from
approach it’s better to use composer/composer
ones.
Using Composer
Now that you’ve installed Composer, you are ready to use it! Head on over to the
next chapter for a short demonstration.
Basic usage →
Last updated on April 21st, 2022 | 83 replies
In this guide we will install Composer and PHP on Windows 10 so that we can install dependencies for our web apps directly from Windows command line.
1. Download and Install Visual C++
In order to run PHP on Windows 10, you will need to install Visual C++ Redistributable for Visual Studio. You can download it from the Windows Download page or click the direct link below.
- Download: VC_redist.x64.exe (64 bit) or VC_redist.x86.exe (32 bit)
Once downloaded, run the installer and click Install.
2. Download and Extract PHP
Go to the Windows PHP download page and download the .zip of the version of PHP you require. In this guide, we are installing PHP 7.4 VC15 x64 Non Thread Safe, which is the latest version as of writing (Jan 2020).
Once downloaded, create a new folder in c:php7
(or wherever you prefer) and extract your PHP zip to it.
3. Download and Install Composer
- Download Composer-Setup.exe from the Composer Download page.
In the second step of Composer Setup, make sure the correct path to php.exe is set and click Next.
If Setup prompts to create php.ini, allow it and click Next.
Skip the Proxy URL settings, just click Next then click Install.
Click Finish once install is complete.
4. Test PHP
If you have any Command Prompt windows currently open, close them now.
Open Command Prompt, type php -v
and press Enter. You should now see the PHP version.
If it returns a PHP version, you can skip to Step 6 to test Composer.
If you get an error “‘php’ is not recognized as an internal or external command,
operable program or batch file.”, you may need to Add a Path Environment Variable.
5. Add Path Environment Variable
Composer setup usually does this for you, but if for whatever reason it didn’t, you can set one up manually.
So that you don’t have to type the whole path to php.exe
every time you run a PHP command, you should add c:php7
as a path environment variable.
Open System Properties by clicking the start menu and typing sysdm.cpl and press Enter.
In System Properties, click Environment Variables.
In System Variables, click Path and then click Edit.
Click New, type the path to your PHP folder (c:php7
) and click OK.
Close the System Properties dialogue by clicking OK.
6. Test Composer
Open up Command Prompt and type composer -V
(that’s uppercase V).
If all was installed correctly, you should see a version number.
Hurrah! You can now run Composer and PHP on Windows 10.
Let me know if this helped. Follow me on Twitter, Facebook and YouTube, or 🍊 buy me a smoothie.
p.s. I increased my AdSense revenue by 200% using AI 🤖. Read my Ezoic review to find out how.
Доброго дня.
Когда я первый раз разбирался с composer, я набросал для себя маленькую шпаргалку и теперь, спустя некоторое время представляю её на суд общественности в несколько доработанном виде.
Данная публикация актуальная для тех, кто в первый раз столкнулся с незаменимым менеджером пакетов для PHP.
Итак, Composer — менеджер пакетов для PHP.
Для чего нужен Composer и простейший пример его использования
Возьмем для примера этот проект
Если в двух словах: то это набор скриптов для работы в VK API
Соответственно, для работы этих скриптов нужно несколько библиотек
Библиотеки перечислены в файле composer.json — ключевой файл при работе с composer
Пример composer.json:
В этом проекте используется 5 библиотек. Соответственно, если разработчик решит опубликовать этот проект на github, то ему достаточно закинуть в репу саму папку со скриптами и составить composer.json, в котором будут описаны библиотеки, необходимые для работы этого проекта. Простота очевидна: в репу не нужно вслед за файлами прицепом тащить все нужные библиотеки. Занимает меньше места, проще распространять проект.
Пример работы:
Скачали проект
В папке scripts лежат непосредственно скрипты проекта, для работы которых и требуются эти 5 пакетов.
Запускаем установку пакетов:
После установки появляется папка vendor, куда складываются установленные пакеты и формируется файл autoload.php
Этот файл подключаем к проекту и всё — библиотеки подключены, можно спокойно с ними работать.
Простота очевидна: не нужно скачивать и подключать библиотеки и их зависимости самостоятельно, composer всё сделает за Вас. И вся эта пачка подключается одним единственным файлом autoload.php
Все пакеты, которые лежат в vendor, добавляются в автозагрузчик. При этом composer опирается на файлы composer.json, которые должны быть у каждого пакета. Формирование composer.json пакета — это задача разработчика пакета, от потребителя пакета требуется лишь описать в composer.json проекта, какие пакеты нужно подключить.
Это пример composer.json проекта:
Это пример composer.json пакета:
В секции require прописана зависимость этого пакета — библиотека guzzle http, необходимая для работы библиотеки getjump/vk. В данном случае, т.е. с точки зрения потребителя пакетов, всевозможные зависимости пакетов — это не наша «забота», с зависимостями composer разберётся сам.
Пространство имён пакета прописано в секции autoload
getjump\Vk\ — наименование пространства имён
src/getjump/Vk/ — директория, в которой лежат файлы с классами пакета
Работа с этой библиотекой в проекте:
Core и Friends — это классы библиотеки, которые разложены и прописаны в папке src в соответствии со стандартом PSR-4. Опять же формирование структуры пакета — это работа создателя пакета.
Нам, как потребителю пакета, достаточно прописать в наш проект
include ‘../vendor/autoload.php’;
и все эти классы и пространства имён будут отлично работать.
При этом нам не нужно заморачиваться и писать автозагрузчик. Composer это сделает сам при выполнении команды install.
Установка
Установка Composer глобально
1) Для начала нужно что бы путь к директории с интерпретатором PHP был прописан в переменной окружения path.
Проверим, так ли это:
php –version
Если вывод получился типа такого, то этот шаг можно пропустить
На примере Windows 7
Система -> Дополнительные параметры системы -> Дополнительно -> Переменные среды
Далее нас будет интересовать переменная path:
Вписываем путь к интерпретатору
*С давних времён у меня на компьютере лежит сборка xampp, сама сборка здесь нафиг не нужна, а вот интерпретатор с неё вполне подойдёт (версия PHP – 5.6).
2) Перезапускаем терминал.
Создаём директорию и ставим composer (я ставил на диск D)
D:
cd /
mkdir bin
cd bin
php -r «readfile(‘https://getcomposer.org/installer’);» | php
echo php «%~dp0composer.phar» %*>composer.bat
3) Добавим в переменную окружения path путь к composer.bat, например для D:bin должно получиться:
Дополнительно можно добавить в path
D:Users%userName%AppDataRoamingComposervendorbin
для того, что-бы было удобнее использовать инструменты, глобально установленные через Composer.
(У меня папка Users располагается на диске D, а на C создан симлинк на неё).
Всё, composer установлен и полностью готов к работе.
Ещё: при установке можно словить ошибку
[RuntimeException]
The APPDATA or COMPOSER_HOME environment variable must be set for composer to run correctly
Решение нашлось здесь github.com/composer/composer/issues/2033
Добавляем переменную APPDATA со значением D:UsersGSUAppDataRoaming
Установка Composer локально
Есть вариант ещё поставить composer локально, но в большинстве случаев в этом нет явной необходимости.
Однако тут установка ещё проще.
Т.к. программа глобально не установлена, нужен загрузочный файл(мини-программа composer), для его загрузки пишем команду:
php -r «readfile(‘https://getcomposer.org/installer’);» | php
теперь в директории проекта появился файл composer.phar
Всё, можно использовать.
php composer.phar require [название пакета]
Отличия глобальной и локальной установки
Команды запускаются по разному при локальной и глобальной установках:
Например:
Локально: php composer.phar require silex/silex ~1.1
Глобально: composer require silex/silex ~1.1
При локальной установке нужно каждый раз скачивать установочный файл в папку текущего проекта
php -r «readfile(‘https://getcomposer.org/installer’);» | php
При глобальной установке этот файл не нужен. Composer запускается при любой текущей директории.
Команды
install — установка пакетов, прописанных в composer.json
update – обновление пакетов
dumpautoload — пересборка автозагрузчика
require somepackage/somepackage:someversion — добавление нового пакета (по умолчанию пакеты ставятся из оф. репозитория). При установке пакет прописывается в composer.json
update —lock — обновление файла блокировки composer.lock
config —global cache-files-maxsize «2048MiB» — пример изменения параметра конфигурации
—profile — добавление этого параметра к любой команде включит показ времени выполнения и объёма использованной памяти
—verbose — подробная инфомация о выполняемой операции
show —installed — список установленных пакетов с описанием каждого
show —platform — сведения о PHP
—dry-run — репетиция выполнения команды. Может добавляться к командам install и update. Эмулирует выполнение команды без её непосредственного выполнения. Необходим для того, чтобы проверить пройдёт ли установка пакетов и зависимостей успешно.
remove — удаление пакета. Точная противоположность require
Синтаксис composer.json
Именование пакетов и варианты описания пакетов
Имя пакета состоит из двух частей разделёных косой чертой: названия поставщика (vendor name) и названия библиотеки.
Если пакет оформлен в соответствии со стандартом PSR-4, но опубликован не на packagist.org, а на github, то вместо версии пакета нужно прописать ветку и репозиторий для этого пакета:
Пример подключения библиотеки, которая лежит на github, но при этом не оформлена по стандарту PSR-4, а представляет из себя обыкновенное нагромождение файлов с классами и функциями.
Примерный вид:
Pqr/superlib — эта та самая «неправильная» библиотека.
В секции repositories для неё пишем такую конструкцию
Ключевой момент — секция autoload, здесь указываем нужные нам файлы с классами и функциями.
Структура библиотеки:
Содержимое файлов:
Соответственно в проекте вызов getCurrentTime() будет выглядеть примерно так:
$timer = new pqrsuperlibTimerClass;
echo $timer->getCurrentTime();
Версионирование
При указании допустимых версий пакетов можно использовать точное соответствие (1.2.3), диапазоны с операторами сравнения (<1.2.3), комбинации этих операторов (>1.2.3 <1.3), “последняя доступная” (1.2.*), символ тильды (~1.2.3) и знак вставки (^1.2.3).
Указание тильды (~1.2.3) будет включать в себя все версии до 1.3 (не включительно), так как в семантическом версионировании это является моментом внедрения новых функциональных возможностей. В данном случае будет получена последняя из стабильных минорных версий. Т.е. будет меняться только последняя цифра — 1.2.5, 1.2.8 и тд.
Указание знака вставки (^1.2.3) буквально означает “опасаться только критических изменений” и будет включать в себя версии вплоть до 2.0. Применительно к семантическому версионированию, изменение мажорной версии является моментом внесения в проект критических изменений, так что версии 1.3, 1.4 и 1.9 подходят, в то время как 2.0 — уже нет.
Т.е. не меняется только первая цифра.
Тильда: ~1.2.3 — это самый распространённый и безопасный способ указания версии.
Файл composer.lock
Файл composer.lock сохраняет текущий список установленных зависимостей и их версии. Таким образом, на момент, когда версии зависимостей уже будут обновлены (команда update), другие люди, которые будут клонировать ваш проект, получат те же самые версии. Это позволяет убедиться в том, что каждый, кто получает ваш проект, имеет пакетное окружение, идентичное тому, которое вы использовали при разработке, и помогает избежать ошибок, которые могли бы возникнуть из-за обновления версий.
При каждом выполнении команды update версии обновлённый пакетов прописываются в composer.lock. Этот файл загоняется под систему контроля версий и при установке пакетов на новом сервере поставятся именно те версии пакетов, которые прописаны в этом файле. При выполнении команды install composer будет в первую очередь опираться на composer.lock. Таким образом на разных серверах будет гарантированно установлено одинаковое пакетное окружение с точки зрения версий.
Также, файл composer.lock содержит хэш файла composer.json.
И если json файл был отредактирован, то composer выдаст предупреждение, что файл lock не соответствует json файлу.
В таком случае, нужно выполнить команду composer update —lock, которая обновит composer.lock.
Отличие install от update в контексте использования composer.lock
Команда composer install делает следующее:
Проверяет существует ли composer.lock:
— если нет, резолвит зависимости и создаёт его
— если composer.lock существует, устанавливает версии, указанные в нём
Команда composer update:
— Проверяет composer.json
— Определяет последние версии на основе указанных в этом файле
— Устанавливает последние версии
— Обновляет composer.lock в соответствии с установленными
Пример использования с точки зрения создателя проекта
Имеется проект без установленных пакетов
Поставили несколько библиотек
У нас сформировался composer.json с информацией о пакетах
Мы можем его дополнить и распространять проект с этим файлом
Другой пользователь скачал наш проект, выполнил install и у него в проекте развернулись все нужные пакеты
Пример использования с точки зрения создателя пакета
Для примера я создал класс с методом, который будет выводить URL текущей страницы
Класс оформлен как пакет и залит на github.
Составлен composer.json
Регистрируюсь на оф. репозитории и добавляю пакет, указывая ссылку на репозиторий, в котором он лежит
Всё, пакет добавлен
Проверяю работоспособность пакета
Пакет поставился, вот наш класс:
Вызываем метод
Всё ок.
Composer и PhpStorm
Инициализация
Конфигурирование возможности редактирования Composer пакетов
Если опция выставлена, то нельзя будет так просто взять и отредактировать файлы внутри vendor/*/*
Установка пакетов
Нюансы, тонкости, сложные ситуации
Ошибка: Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them. Nothing to install or update
Решение: composer update —lock
Долго выполняется update при большом числе установленных библиотек
Composer проверяет все зависимости пакетов, а если пакетов много — то это надолго.
Решение: если нужно обновить только одну библиотеку, то указываем её явно:
composer update package/name
Ещё можно добавлять параметр «—prefer-dist» (хотя, по идее, он должен быть включён по умолчанию), тогда composer будет стараться ставить библиотеку из zip-архива, а не клонировать репозиторий.
The «****.json» file could not be downloaded: failed to open stream: HTTP request failed!
Composer пытается дергануть пакет по HTTP, хотя нужно по HTTPS
Решение: composer config —global repo.packagist composer packagist.org
The package is not available in a stable-enough version according to your minimum-stability setting
see for more details.
Стабильной версии у пакета нет, а установка dev версии не разрешена в конфиге.
Решение: либо выставить параметр «minimum-stability»: «dev» и «prefer-stable»: true, чтобы ставить по возможности стабильные версии, либо — если это ваш собственный пакет — создать тег с версией (стикер stable в readme на github должен показывать версию)
История развития и ключевые изменения
— первый релиз состоялся 1 марта 2012 и весь 2012 инструмент активно развивается
— январь 2014 — реализована автозагрузка на основе PSR-4
— март 2016 — вышла в свет бета-версия (1.0.0-beta1). Добавлены команды show —tree для отображения установленных пакетов в виде дерева, why-not — показывает почему нельзя уставить пакет, update —interactive — позволяет выбрать какие пакеты обновлять, а также множество других улучшений и исправлений.
— 4 апрель 2016 — был представлен первый стабильный релиз Composer — 1.0.0
Декабрь 2014 — один из ключевых коммитов в репозиторий composer
github.com/composer/composer/commit/ac676f47f7bbc619678a29deae097b6b0710b799
Суть изменения — отключён сборщик мусора
habrastorage.org/getpro/habr/comment_images/db3/59a/972/db359a972df6730e52f292b5c52095b8.gif
Ссылки
Офсайт: getcomposer.org
Официальный репозиторий пакетов: packagist.org
Репозиторий composer: github.com/composer/composer
Отличный большой туториал по использованию Composer: daylerees.com/composer-primer
Список команд и подробный пример файла composer.json: composer.json.jolicode.com
How to install composer globally in windows 10 tutorial. Here, We will show you how to Install Composer on windows 11/10 system Step by Step. A complete guide on install composer windows. And also How to Check Composer is Installed or Not. Using command prompt, and type the command “composer”. If you want to check composer version to run the command on command prompt “Composer –version”.
Composer
A composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. Click this link Install Composer and download it.
System Requirements for install composer in windows 11/10
Composer requires PHP 5.3.2+ to run. A few sensitive php settings and compile flags are also required, but when using the installer you will be warned about any incompatibilities.
To install packages from sources instead of simple zip archives, you will need git, svn, fossil or hg depending on how the package is version-controlled.
It is multi-platform and we strive to make it run equally well on Windows, Linux and macOS.
Follow the below steps & install composer globally in windows 11/10 system:
Step 1: First Download Composer
Visiting the official site & download composor: https://getcomposer.org/download/
Step 2: Click on Downloaded composer exe file
Follow the below steps, after clicking on downloaded composer exe file:
1. Run the installer file & install composer
Leave the default settings and click Next.
2. Next, the window will display the resume of the settings, click “Install” to continue.
3. In this windows if you cam put your proxy server settings. If you don’t know just click “Next >” , you probably don’t have proxy.
4. Here the composer is ready to install. The setup wizard will download the required files from getcomposer.org . Your installation will be completed.
5. The installer install composer your system.
6. In this step, If you are new in composer better check their online documentation. Click “Finish”. Install composer proccess successfully completed.
7. Next, test whether the composer can run properly. Open a command prompt and run the command: composer --version
composer --version
Thanks
My name is Devendra Dode. I am a full-stack developer, entrepreneur, and owner of Tutsmake.com. I like writing tutorials and tips that can help other developers. I share tutorials of PHP, Python, Javascript, JQuery, Laravel, Livewire, Codeigniter, Node JS, Express JS, Vue JS, Angular JS, React Js, MySQL, MongoDB, REST APIs, Windows, Xampp, Linux, Ubuntu, Amazon AWS, Composer, SEO, WordPress, SSL and Bootstrap from a starting stage. As well as demo example.
View all posts by Admin
Май 31, 2022
Renat
5хв. читання
В этой статье мы покажем вам, как установить Composer на различные платформы, а также как им пользоваться. Composer — менеджер зависимостей для PHP. Это простой и надёжный инструмент, который разработчики используют для управления внешними пакетами или библиотеками и их интеграции в свои проекты на основе PHP. Таким образом, им не нужно писать веб-страницы или приложения с нуля.
Чтобы помочь вам освоить этот инструмент, мы также покажем, как создать базовый PHP-проект.
Но прежде чем приступить к пробной установке Composer, убедитесь, что у вас есть доступ к интерфейсу командной строки (в вашей системе или на сервере).
Установка Composer
В этом разделе вы узнаете, как установить Composer на общий хостинг и операционные системы, такие как Linux, macOS и Windows.
1. Установка Composer на Общий Хостинг, Linux или macOS
Команды для установки Composer на общий хостинг, Linux (ПК или сервер) и macOS одинаковы.
Обратите внимание, что сейчас в Hostinger действуют скидки на хостинг до 85%!
Обратите внимание, что Composer включен в наши планы хостинга Премиум и Бизнес. Если вы подписаны на один из этих планов, просто пропустите эту часть. Однако, если вы обнаружили, что он устарел, обновите его, выполнив следующую команду:
php composer.phar self-update
Следуйте инструкции, чтобы узнать, как установить Composer в вашей системе:
- Подключитесь к вашему хостинг-аккаунту через SSH. Вы можете найти подробные инструкции о том, как это сделать здесь.
- Загрузите Composer с официального сайта, используя следующую команду:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- Проверьте подпись установщика (SHA-384), чтобы убедиться, что файл установщика не повреждён. Введите:
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Длинная строка символов в приведённой выше команде («e0012edf…») — подпись установщика. Она меняется каждый раз, когда выходит новая версия Composer. Поэтому обязательно загрузите последнюю версию SHA-384 с этой страницы.
- Как только это будет сделано, вы сможете установить Composer локально или глобально. Локальная установка означает, что менеджер зависимостей будет храниться в вашем текущем каталоге, и вы должны будете указать путь перед выполнением соответствующих команд. Между тем, глобальная установка позволяет вам запускать Composer из любой точки вашей системы, сохраняя его в каталоге /usr/local/bin. Вот как реализовать оба метода:
- Локальная установка:
php composer-setup.php
- Глобальная установка:
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Вы получите следующий результат:
All settings correct for using Composer Downloading... Composer (version 1.10.5) successfully installed to: /usr/local/bin/composer
- Локальная установка:
- Как только это будет сделано, удалите установщик:
php -r "unlink('composer-setup.php');"
- Проверьте установку Composer:
composer
Командная строка покажет следующий результат:
______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ / __ `__ / __ / __ / ___/ _ / ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / ____/____/_/ /_/ /_/ .___/____/____/___/_/ /_/ Composer version 1.10.5 2020-02-12 16:20:11
Установка Composer на Windows
Начало работы с Composer на компьютере с Windows немного отличается. На самом деле начать работу с Composer на Windows гораздо проще. Вам не понадобятся какие-либо команды для установки и загрузки.
Просто следуйте инструкции:
- Установите на свой компьютер PHP. Мы рекомендуем использовать XAMPP, так как это просто, удобно и быстро.
- После установки XAMPP скачайте последнюю версию Composer.
- Запустите мастер установки Composer. Когда он попросит вас активировать режим разработчика, пропустите это и продолжайте процесс установки.
- Появится другое окно с запросом найти командную строку PHP. По умолчанию она находится в C:/xampp/php/php.exe. Указав местоположение, нажмите «Next» (Далее).
- Дальше вас направит к настройкам прокси (Proxy Settings). Оставьте флажок снятым и пропустите эту часть, нажав «Далее». Затем в последнем окне нажмите «Install»(Установить).
- После завершения установки откройте командную строку. Нажмите CTRL + R, введите «cmd» и нажмите «ОК».
- Введите следующую команду:
composer
Вуаля! Вы узнали, как установить Composer на компьютер под операционной системой Windows. Установщик автоматически добавит Composer в вашу переменную PATH. Вы сможете открыть командную строку и запустить Composer с любого места.
Создание и Общая Информация о composer.json
Теперь самое интересное — использование Composer на практике, а именно в вашем PHP-проекте.
Для этого, создайте отдельный файл composer.json. Этот файл служит своего рода шпаргалкой для Composer; он будет загружать для вашего проекта только те пакеты (зависимости), которые в нём упомянуты.
Обратите внимание, что он также проверяет совместимость версий пакетов для вашего проекта. К примеру, если вы используете старый пакет в вашем проекте, файл composer.json даст вам об этом знать для избежания возможных проблем в будущем.
У вас есть возможность создать и обновлять файл composer.json самостоятельно. Но так как в наших руководствах мы стараемся показать, как автоматизировать некоторые задачи, этот способ будет неуместен. Мы не рекомендуем создавать файл вручную.
Давайте продемонстрируем, насколько полезен composer.json, создав пробный проект.
Наш проект — это простой таймер PHP, позволяющий разработчикам узнать сколько времени тратиться на выполнение той или иной части кода. Это очень полезно при оптимизации и отладке.
Следуйте пошаговому руководству, чтобы создать свой проект:
- Создайте новую папку для проекта. Так как наш проект — это таймер, мы назовём его просто: «phptimer». Для этого впишите эту команду:
mkdir phptimer
- Войдите в созданную папку с помощью команды:
cd phptimer
- Теперь вам нужен пакет или библиотека с уже реализованным таймером PHP. Лучшее место для поиска пакетов — Packagist — официальное хранилище пакетов, созданных для Composer. Здесь вы найдёте все виды библиотек, которые помогут в разработке вашего проекта. Для данного руководство нам понадобиться пакет с таймером. Для этого впишите «timer» в поисковое поле, как на картинке снизу:
Как видите, доступно несколько пакетов таймеров, и у каждого есть название и короткое описание того, что он делает. В этом примере мы выбираем phpunit/php-timer, так как он имеет наибольшее количество загрузок и большинство звёзд GitHub. - Укажите нужный пакет, чтобы Composer мог добавить его в ваш проект:
composer require phpunit/php-timer
Вывод покажет версию phpunit/php-timer:
Using version ^1.0 phpunit/php-timer
Символ каретки (^) определяется Composer, как опция максимальной совместимости. Это означает, что Composer всегда будет обновлять пакет, пока не появится версия, которая каким-либо образом вызовет ошибку.
В нашем случае диапазон обновления пакета > = 1.0.9 <2.0.0, так как версия 2.0.0 нарушит обратную совместимость (англ.). Для более подробной информации о версиях Composer, перейдите на страницу документации.
После выполнения вышеуказанной команды в вашем каталоге проекта появятся два новых файла — composer.json и composer.lock, а также папка с именем vendor. Это каталог, в котором Composer будет хранить все ваши пакеты и зависимости.
Использование Скрипта Автозагрузки
Если вы дошли до этой части руководства, все последующее вам должно даваться очень легко. Ваши зависимости были установлены и ваш проект готов к работе. Почти.
Теперь вам необходимо загрузить эти зависимости в ваш PHP-скрипт. Если бы не файл автозагрузки Composer, мы бы потратили на это довольно много времени.
Чтобы добиться автозагрузки, просто напишите следующую строку перед объявлением или созданием любых новых переменных в вашем скрипте:
require 'vendor/autoload.php'
Пример ниже поможет вам лучше это понять.
Допустим, мы хотим протестировать наш проект phptimer:
- Откройте текстовый редактор nano, чтобы создать скрипт с названием demo.php.
nano demo.php
Затем вставьте в ваш файл следующие строки:
<?php require __DIR__ . '/vendor/autoload.php' Timer::start(); // your code $time = Timer::stop(); var_dump($time); print Timer::secondsToTimeString($time);
- Запустите скрипт:
php demo.php
Терминал должен показать вывод, подобный этому:
double(1.0893424438611E-5) 0 ms
Обновление Зависимостей Вашего Проекта
Теперь нам осталось лишь узнать, как производить обновление пакетов. Сделать это можно двумя способами:
- Универсальное обновление. Для проверки и обновления всех ваших пакетов и зависимостей, впишите в терминал следующую команду:
composer update
- Обновление конкретного пакета. Выполните эту команду, чтобы проверить обновления для одного или нескольких определённых пакетов:
composer update vendor/package vendor2/package2
Не забудьте поменять vendor/package на имя пакета, который вы хотите обновить.
Команда update также автоматически обновит файлы composer.json и composer.lock для соответствия текущему состоянию вашего проекта.
Заключение
Composer помогает разработчикам управлять зависимостями проектов PHP. Благодаря этому программному обеспечению они могут легко интегрировать и управлять пакетами с открытым исходным кодом в одном месте.
Что хорошо, Composer также может разрешать зависимости для каждого проекта отдельно. Таким образом, разработчики могут контролировать пакеты, а также размер каждого проекта.
Из этого руководства вы узнали, как установить Composer и эффективно его использовать. Подводя итог, давайте ещё раз перечислим все шаги:
- Узнали, как установить Composer на виртуальный хостинг, Linux, macOS или Windows.
- Научились создавать и разобрались с файлом composer.json.
- Научились пользоваться скриптом автозагрузки для загрузки зависимостей в файл PHP.
- Обновили зависимости нашего проекта.
Мы надеемся, что наше руководство станет для вас стартом для создания не одного прекрасного проекта на PHP. Удачи и не стесняйтесь задавать вопросы в разделе комментариев ниже.