PHP

Composer - менеджер зависимостей для php

Начиная очередной проект я часто сталкиваюсь с тем, что нужно скачивать последние версии фреймворков, строить скелет приложения и в сотый раз писать или переносить автолоадер. В некоторой степени я завидовал рубистам, которые могли поставить свои любимые рельсы буквально за минуту. Для php же приходилось довольствоваться файлом .gitmodules, который кочевал от одного проекта к другому.

Но случилось чудо и на свет появился composer. Устанавливается он до безобразия просто:

curl -sS https://getcomposer.org/installer | php

Если же вы пользователь PHPStorm, то можете сделать tools -> init composer

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

{
"name": "vendor/package",
"description": "My awesome project",
"minimum-stability": "dev",
"authors": [
{
"name": "John Smith",
"email": "name@example.com
"
}
],
"autoload": {
"psr-0": {
"Blog": "src/"
}
},
"require": {
"zendframework/zendframework": "2.1.*"
}
}

Все поля необязательные. name используется при публикации вашего проекта, например на packagist. С description, и authors я думаю все понятно.

Самым полезным безусловно является require. Здесь перечисляются все зависимости проекта, в данном случае мы указали, что проект требует Zend Framework из ветки 2.1. Подробнее о том, как задавать версии можно почитать тут

Вы можете указать сколько угодно зависимостей. Найти интересующие вас пакеты можно на packagist или через composer

composer.phar search hello-world

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

Вторым по вкусности параметром композера является autoload. Дело в том, что композер не только скачивает нужные пакеты, но и подключает их автолоадеры, а также генерирует свой на основе параметра autoload. Как можно догадаться, для нашего примера мы используем автолоадер совместимый с PSR-0, который будет классы неймспейса Blog искать в директории src

Установка
Конфиги писать скучно, так что пора приступить к установке.

composer.phar install

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

composer.phar update

После этого, можно подключать автолоадер и использовать все возможности

<?php
include "vendor/autoload.php";
var_dump(\Zend\Version\Version::VERSION);
Теги:
Composer, менеджер зависимостей
Добавлено: 16 Апреля 2018 20:43:00 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...