Поиск по сайту:

Как установить и использовать Composer, диспетчер зависимостей PHP


Composer — это любимый менеджер зависимостей PHP-сообщества. Это упрощает установку, обновление и использование сторонних пакетов. Пакеты могут размещаться в общедоступных и частных репозиториях, при этом наиболее популярные проекты публикуются в Packagist.

Установка Композитора

Composer — это работа сообщества, которая не связана с PHP. Он распространяется в виде архива PHP PHAR с сайта getcomposer.org. Некоторые дистрибутивы Linux включают Composer в свои репозитории программного обеспечения, но установка таким образом обычно приводит к устаревшей версии.

Прежде чем продолжить, убедитесь, что у вас установлен PHP. PHP 5.3 — самая старая поддерживаемая версия на момент написания. Вам также понадобятся git и unzip в вашей системе, если вы хотите установить пакеты из исходного кода.

Composer предоставляет сценарий автоматической установки. Начните с загрузки установщика в свой рабочий каталог:

curl https://getcomposer.org/installer -o composer-setup.php

Теперь вы должны проверить хэш установщика, чтобы убедиться, что он не был подделан. Посетите веб-сайт Composer, чтобы проверить последний хэш и получить образец кода подтверждения.

Затем используйте сценарий установки для установки Composer:

php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Это загрузит Composer в /usr/local/bin, что позволит ему находиться на вашем пути вместе с другими исполняемыми файлами. Попробуйте запустить composer в своей оболочке, чтобы убедиться, что все работает. Должна отображаться версия Composer, а затем список доступных команд Composer.

Чтобы обновить Composer в будущем, запустите composer self-update. Это автоматически заменит ваш двоичный файл Composer последней версией. Вам не нужно будет снова использовать скрипт composer-setup.php, так что вы можете удалить его сейчас.

Подготовка вашего проекта

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

Следуйте подсказкам командной строки, чтобы предоставить информацию о вашем проекте, такую как его имя, описание и сведения об авторе. Имена пакетов используют синтаксис vendor/package, чтобы избежать конфликтов между авторами в общедоступных репозиториях. Вы должны использовать свое имя пользователя Packagist в качестве компонента vendor.

Большинство ключей в composer.json являются необязательными, если только вы не собираетесь публиковать свою кодовую базу в Packagist. Вы можете найти полное описание структуры файла на сайте документации Composer.

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

Вы можете добавить пакеты в свой проект с помощью команды composer require:

composer require vendor/package

Найдите пакеты для установки на веб-сайте Packagist. Они будут добавлены в раздел require файла composer.json вашего проекта. После установки исходный код пакета помещается в папку vendor в вашем проекте.

Composer полагается на семантическое управление версиями для обработки обновлений пакетов. Точная версия каждого установленного вами пакета записывается в composer.lock в каталоге вашего проекта. Это позволяет Composer идентифицировать конкретный пакет для установки, когда composer.json указывает, что допустим диапазон версий.

Вы должны зафиксировать как composer.json, так и composer.lock в системе управления версиями. Затем другие разработчики, работающие над вашим проектом, могут запустить composer install, чтобы получить все определенные вами зависимости.

Такие пакеты, как средства выполнения тестов, можно пометить как зависимости разработки, указав флаг --dev в команде require. Они будут разделены на раздел require-dev внутри composer.json. При установке пакетов используйте composer install --no-dev, чтобы исключить зависимости разработки. Это полезно при использовании Composer в сценариях развертывания и системах непрерывной интеграции.

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

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

Чтобы применить обновления, запустите composer update. При этом будет соблюдаться семантическое управление версиями, и будет извлечена самая новая версия каждого пакета в рамках ограничений версии, указанных в вашем composer.json. Пакет, помеченный как ^1.2, будет обновлен до 1.2.x или 1.3.x, но не до 2.0. Документы Composer содержат подробную информацию о том, как инструмент разрешает различные формы ограничения версии.

При обновлении пакета ваш файл composer.lock будет автоматически переписан для указания новой версии. Другие разработчики, работающие над вашим проектом, могут перезапустить composer install, чтобы получить именно те пакеты, которые вы используете.

Автозагрузчик Composer

Автозагрузка является предпочтительным механизмом для обнаружения исходных файлов в PHP. Composer имеет первоклассную поддержку автозагрузки; в большинстве случаев его автозагрузчик будет единственным файлом, который вам нужен require_once() в вашем проекте.

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

{
    "autoload": {
        "psr-4": {
            "ExampleProject\": "src/"
        }
    }
}

Приведенный выше фрагмент кода настроит автозагрузку вашего проекта с использованием стандарта PSR-4. Ресурсы базы кода в пространстве имен ExampleProject будут сопоставлены с файлами в каталоге src — например, use ExampleProjectExampleClassesMyClass> автоматически require_once(\ src/ExampleProject/ExampleClasses/MyClass.php\).

Единственный файл, который вам нужно вручную require_once(), — это сам автозагрузчик:

require_once(__DIR__ . "/vendor/autoload.php");

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

Иногда может потребоваться принудительная регенерация автозагрузчика. Часто это происходит из-за того, что вы обновили конфигурацию autoload вашего проекта. Вы можете запустить composer dump-autoload, чтобы написать новый автозагрузчик по требованию.

Краткое содержание

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

Встроенный автозагрузчик Composer позволяет вам получать доступ к установленным пакетам без каких-либо дополнительных действий с вашей стороны. Инструмент также включает средство запуска сценариев, которое позволяет вам выполнять задачи в вашей кодовой базе, добавляя команды в блок scripts в composer.json. Используйте composer run my-script для запуска скрипта.




Все права защищены. © Linux-Console.net • 2019-2024