- Introduction#
- Dependency management#
- System Requirements#
- Installation — Linux / Unix / macOS#
- Downloading the Composer Executable#
- Locally#
- Globally#
- Installation — Windows#
- Using the Installer#
- Manual Installation#
- Using Composer#
- Установка Composer Ubuntu 18.04
- Установка Composer в Ubuntu
- Использование Composer
- Выводы
- Установка и использование Composer в Ubuntu 20.04
- Введение
- Предварительные требования
- Шаг 1 — Установка PHP и необходимых зависимостей
- Шаг 2 — Загрузка и установка Composer
- Шаг 3 — Использование Composer в проекте PHP
- Шаг 5 — Обновление зависимостей проекта
- Заключение
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.
- You have a project that depends on a number of libraries.
- Some of those libraries depend on other libraries.
- 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 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 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:
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:
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 with sudo.
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 :
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:
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.
Found a typo? Something is wrong in this documentation? Fork and edit it!
Composer and all content on this site are released under the MIT license.
Источник
Установка Composer Ubuntu 18.04
Composer — это свободный пакетный менеджер для установки зависимостей и самих модулей PHP. Он разработан Нильсом Адерманом и Хорди Боггиано. С помощью скрипта можно в несколько нажатий установить нужный модуль, а также все его зависимости, например, ZendFramework или Symphony. Он широко используется разработчиками PHP скриптов.
В этой статье мы рассмотрим как установить Composer Ubuntu 18.04 и более поздних версиях, а также как пользоваться утилитой.
Установка Composer в Ubuntu
Вы не можете установить программу из официальных репозиториев. Нужно скачать скрипт из официального сайта и поместить его в папку с вашим проектом. Но сначала обновите систему и установите зависимости:
sudo apt update
sudo apt install curl php-cli php-mbstring git unzip
Установка Composer ubuntu может быть выполнена двумя способами. Либо локально в папку проекта, либо же глобально, для всей системы. Сначала рассмотрим как установить программу локально. Перейдите в папку проекта:
Выполните такую команду для загрузки установочного скрипта:
curl -sS https://getcomposer.org/installer -o composer-setup.php
Затем запустите этот скрипт, чтобы создать файл composet.phar, который и будет использоваться для установки пакетов:
Теперь вы можете проверить работает ли Composer:
Теперь рассмотрим как установить программу глобально для всей системы. Вы можете скачивать файл установщика в любую папку, например, домашнюю:
curl -sS https://getcomposer.org/installer -o composer-setup.php
Только команда установки будет отличаться, в ней мы указываем папку, куда нужно установить скрипт:
sudo php composer-setup.php —install-dir=/usr/local/bin —filename=composer
Для проверки работы, вы можете выполнить команду:
Использование Composer
Для того чтобы указать какие пакеты нужно устанавливать используется конфигурационный файл composer.json. В нем сообщаются зависимости вашего проекта, а также их версии. Создайте этот файл в корневой папке вашего проекта. Синтаксис записей очень прост, и если вы раньше имели дело с JSON, то без проблем разберетесь:
<
«require»: <
«производитель/пакет»: «версия»
>
«require-dev»: <
«производитель/пакет»: «версия»
>
>
Секция require отвечает за пакеты, необходимые для работы программы, а require-dev — только за пакеты для разработки. Например, для нашего проекта необходимо установить библиотеку работы с RSS Atom — picofeed. Для этого сначала откройте сайт https://packagist.org и найдите этот пакет:
На его странице вы можете видеть команду composer, которой его можно установить, в ней полное имя, а чуть ниже версию:
Наш файл будет выглядеть вот так:
Для того чтобы установить все пакеты, описанные в файле конфигурации, используйте команду:
php composer.phar install
После установки пакетов composer создает файл autoload.php в папке vendor вашего проекта, с помощью него можно включить в проект все библиотеки, которые были установлены. Для этого достаточно подключить этот файл к проекту с помощью инструкции include или require:
Например, возьмем небольшой пример чтения ленты rss с GitHub:
use PicoFeed\Reader\Reader;
use PicoFeed\PicoFeedException;
$reader = new Reader;
// Return a resource
$resource = $reader->download(‘https://losst.ru/feed/’);
// Return the right parser instance according to the feed format
$parser = $reader->getParser(
$resource->getUrl(),
$resource->getContent(),
$resource->getEncoding()
);
// Return a Feed object
$feed = $parser->execute();
// Print the feed properties with the magic method __toString()
echo $feed;
>
catch (PicoFeedException $e) <
// Do Something.
>
?>
Вы можете управлять зависимостями не только с помощью конфигурационного файла. Composer имеет несколько команд для легкого управления. Чтобы добавить пакет в зависимости проекта используйте команду require:
php composer.phar require picofeed
Пакет сразу же будет установлен. А теперь вы его можете удалить:
php composer.phar remove picofeed
Если версии пакетов устарели, то вы можете их обновить с помощью одной команды:
php composer.phar update
Выводы
В этой небольшой статье мы рассмотрели как выполняется установка Composer Ubuntu 18.04 и 16.04, а также как использовать эту утилиту в своем проекте для разрешения зависимостей. Это очень удобно, когда вы можете один раз указать нужные пакеты и больше не заботиться об их установке и обновлении на других машинах.
Источник
Установка и использование Composer в Ubuntu 20.04
Published on May 21, 2020
Введение
Composer — это популярный менеджер зависимостей PHP, который упрощает процесс установки и обновления зависимостей проекта. Он проверяет, от каких прочих пакетов зависит конкретный проект, а затем устанавливает все необходимые версии пакетов в соответствии с требованиями. Composer также часто используется для загрузки новых проектов на основе популярных инфраструктур PHP, таких как Symfony и Laravel.
Данное руководство поможет установить и начать работу с Composer на сервере Ubuntu 20.04.
Предварительные требования
Для прохождения этого обучающего модуля вам потребуется доступ к серверу Ubuntu 20.04 на уровне sudo без привилегий root и включенный на сервере брандмауэр. Чтобы выполнить настройку, воспользуйтесь руководством по первоначальной настройке сервера Ubuntu 20.04.
Шаг 1 — Установка PHP и необходимых зависимостей
В дополнение к зависимостям, уже входящим в комплект системы Ubuntu 20.04, таким как git и curl , Composer требует php-cli для выполнения скриптов PHP в командной строке и unzip для распаковки архивов. Сейчас мы установим эти зависимости.
Во-первых, необходимо обновить кэш менеджера пакетов:
Запустите следующую команду для установки требуемых пакетов:
Для подтверждения установки введите Y и нажмите ENTER .
После установки обязательных компонентов можно переходить к установке Composer.
Шаг 2 — Загрузка и установка Composer
Composer предоставляет написанный на PHP скрипт installer. Мы должны загрузить его, убедиться, что он не поврежден, а затем использовать его для установки Composer.
Убедитесь, что вы находитесь в домашней директории, а затем загрузите установщик с помощью curl :
Далее мы убедимся, что хэш установщика совпадает с хэшем SHA-384 для последней версии установщика на странице Composer Public Keys / Signatures. Чтобы упростить проверку, вы можете использовать следующую команду для программного получения последней версии хэша со страницы Composer и ее сохранения в переменной оболочки:
Для проверки полученного значения можно использовать следующую команду:
Теперь выполните следующий код PHP, приведенный на странице загрузки Composer, чтобы подтвердить безопасность запуска скрипта установки:
Вывод должен выглядеть так:
Если вы увидите сообщение Installer corrupt , вам нужно повторно загрузить скрипт установки и еще раз убедиться, что вы используете правильный хэш. Затем повторите процедуру проверки. После успешной проверки установщика вы можете продолжить.
Чтобы выполнить глобальную установку composer , используйте следующую команду, которая выполнит загрузку и установку Composer в качестве общесистемной команды composer в каталоге /usr/local/bin :
Вывод будет выглядеть следующим образом:
Чтобы протестировать установку, запустите команду:
Это подтверждает, что диспетчер зависимостей Composer был успешно установлен и доступен в рамках всей системы.
Примечание: если вы предпочитаете иметь отдельные исполняемые модули Composer для каждого проекта, который вы размещаете на этом сервере, вы можете выполнить установку локально для каждого проекта. Этот метод также полезен, когда системный пользователь не имеет прав на установку программного обеспечения в рамках всей системы.
Для этого воспользуйтесь командой php composer-setup.php . В текущем каталоге будет сгенерирован файл composer.phar , который можно будет запустить с помощью команды php composer.phar .
А теперь давайте рассмотрим использование Composer для управления
Шаг 3 — Использование Composer в проекте PHP
PHP проекты часто зависят от внешних библиотек, и управление этими зависимостями и их версиями может вызывать затруднения. Composer решает эту проблему посредством отслеживания версий и зависимостей проектов, а также упрощает процесс поиска, установки и обновления пакетов, требуемых для проекта.
Чтобы использовать Composer в вашем проекте, вам потребуется файл composer.json . Файл composer.json указывает Composer, какие зависимости для вашего проекта нужно загрузить, а также какие версии каждого пакета можно использовать. Это очень важно для сохранения последовательности вашего проекта и отказа от установки нестабильных версий, которые могут вызывать проблемы с обратной совместимостью.
Вам не нужно создавать этот файл вручную, потому что при этом можно легко допустить ошибку в синтаксисе. Composer предлагает интерактивный способ создания нового файла composer.json на основе ввода пользователя. Этот вариант будет полезным, если вы захотите опубликовать свой проект как общедоступный пакет в Packagist. Также Composer автоматически генерирует чистый файл composer.json при запуске команды composer require для добавления зависимости в новом проекте.
Использование Composer для установки пакета в качестве зависимости в проект подразумевает следующие шаги:
- Определите, какая библиотека необходима приложению.
- Изучите подходящую библиотеку из открытого источника на Packagist.org, официальном репозитории пакетов для Composer.
- Выберите пакет, который вы будете использовать в качестве зависимости.
- Запустите composer require , чтобы включить зависимость в файл composer.json и установить пакет.
Давайте попробуем сделать это на примере демо-приложения.
Приложение преобразует указанное предложение в понятную человеку часть URL-адреса (slug). Как правило, подобные приложения используются для преобразования названия страницы в URL-адрес (например, последняя часть URL для данного обучающего руководства).
Начнем с создания директории для нашего проекта. Мы назовем его slugify.
Хотя это не требуется, вы можете запустить команду composer init для создания детального файла composer.json для вашего проекта. Поскольку единственная цель нашего проекта — продемонстрировать установку зависимостей на Composer, мы используем более простой файл composer.json , который будет сгенерирован автоматически, когда нам потребуется наш первый пакет.
Теперь нужно найти на Packagist.org пакет, который поможет нам генерировать понятные человеку части URL-адреса. При поиске термина «slug» на Packagist вы получите примерно такой результат:
Вы увидите два числа с правой стороны каждого пакета в списке. Число сверху указывает на количество установок пакета через Composer, а число внизу показывает, какие оценки пакету ставили на GitHub. Как правило, пакеты с большим количеством установок и большим количеством звезд более стабильны, потому что многие люди их используют. Также важно проверить описание пакета на соответствие тому, что вам нужно.
Нам нужен конвертер из строки в понятную человеку часть URL-адреса. Среди результатов поиска хорошо подходит пакет cocur/slugify , отображаемый на первой строке, для которого указано существенное количество установок и звезд.
Пакеты на Packagist имеют имя автора и имя пакета. Каждый пакет имеет уникальный идентификатор (пространство имен) в том же формате, который использует GitHub для своих репозиториев: vendor / package . Библиотека, которую мы хотим установить, использует пространство имен cocur/slugify . Для ее указания в вашем проекте требуется пространство имен пакета.
Теперь, когда вы знаете, какой пакет хотите установить, запустите composer require , чтобы добавить его в качестве зависимости, а также сгенерировать файл composer.json для вашего проекта. При запросе пакетов важно учитывать, что Composer отслеживает как зависимости на уровне приложений, так и зависимости на уровне системы. Зависимости на уровне системы важны, чтобы показать, на какие модули PHP полагается пакет. Для пакета cocur/slugify требуется модуль PHP, который мы еще не установили.
Если требуемый пакет использует системную библиотеку, которая еще не установлена на вашем сервере, вы получите сообщение об ошибке с указанием невыполненного требования:
Для решения проблемы с системной зависимостью мы можем выполнить поиск отсутствующего пакета с помощью apt search :
Определив правильное имя пакета, вы можете использовать apt еще раз для установки системной зависимости:
После завершения установки вы можете запустить команду composer require еще раз:
Как видите, Composer автоматически определил, какую версию пакета использовать. Если вы сейчас проверите каталог вашего проекта, он будет содержать два новых файла: composer.json и composer.lock , а также каталог vendor .
Файл composer.lock используется для хранения информации о том, какие версии каждого пакета установлены, а также для использования одних и тех же версий пакетов, если кто-либо будет клонировать ваш проект и устанавливать зависимости. Каталог vendor служит местом расположения зависимостей проекта. Папка vendor не обязательно должна использоваться для контроля версий, в нее следует поместить только файлы composer.json и composer.lock.
При установке проекта, который уже содержит файл composer.json , запустите composer install , чтобы загрузить зависимости проекта.
Давайте быстро пробежимся по ограничениям версии. Если вы просмотрите содержимое файла composer.json , то увидите следующее:
Вы можете заметить специальный символ ^ перед номером версии в файле composer.json . Composer поддерживает несколько ограничений и форматов для определения требуемой версии пакета, чтобы обеспечить гибкость и одновременно сохранить стабильность вашего проекта. Оператор карет ( ^ ), используемый в автоматически генерируемом файле composer.json , рекомендуется применять для обеспечения максимальной совместимости в соответствии с семантическим управлением версиями. В данном случае он определяет 4.0 в качестве минимальной совместимой версии и позволяет обновляться до любой будущей версии ниже 5.0.
Как правило, вам не нужно изменять ограничения версии в файле composer.json . Однако в некоторых ситуациях может потребоваться вручную отредактировать ограничения для экземпляра, например, при выходе крупного обновления требуемой библиотеки, а также в случае, когда библиотека, которую вы хотите использовать, не соответствует требованиям семантического управления версиями.
Ниже представлены примеры, которые помогут лучше понять, как работают ограничения версии в Composer:
Ограничение | Значение | Пример допустимых версий |
---|---|---|
^1.0 | >= 1.0 = 1.1.0 = 1.0 = 1.0.0 = 1.0 = 1.2 vendor/autoload.php в скрипты PHP перед созданием экземпляра любого класса. Протестируем его в нашем демонстрационном приложении. Откройте в текстовом редакторе новый файл с именем test.php : Добавьте следующий код, который будет подключать файл vendor/autoload.php , загружать зависимость cocur/slugify и использовать ее для создания понятной человеку части URL-адреса: Сохраните файл и закройте редактор. Вы должны получить вывод hello-world-this-is-a-long-sentence-and-i-need-to-make-a-slug-from-it . Зависимости нуждаются в обновлениях при выходе новых версий, так что давайте рассмотрим, как решить эту проблему. Шаг 5 — Обновление зависимостей проектаЕсли вам нужно обновить зависимости проекта на более поздние версии, запустите команду update : Она будет проверять новые версии библиотек, которые требуются вам в вашем проекте. Если будет найдена новая версия, которая совместима с ограничением версии, определенным в файле composer.json , Composer заменит ранее установленную версию на новую. Файл composer.lock будет обновлен, чтобы отразить эти изменения. Вы также можете обновить одну или несколько конкретных библиотек, указав их следующим образом: Обязательно зарегистрируйте файлы composer.json и composer.lock в системе контроля версий после обновления зависимостей, чтобы другие тоже могли установить обновленные версии. ЗаключениеComposer — это мощный инструмент, значительно упрощающий управление зависимостями в проектах PHP. Он дает надежный способ обнаружения, установки и обновления пакетов PHP, от которых зависит проект. В этом обучающем модуле мы узнали, как установить Composer, как включить в проект новые зависимости и как обновлять эти зависимости при выходе новых версий. Источник |