Пять полезных инструментов для Composer

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

  1. Composition — пакет, который в рантайме позволяет получать информацию об установленных пакетах. Может быть полезным если логика вашего приложения зависит от установленных пакетов, различных их несовместимых версий, или же зависит от среды исполнения — например используется windows или php старых версий.

if (!\Composition::has('vendor/super-package', '>=2.0') {
    $this->markTestSkipped('The following tests require "SuperPackage" to be at least at 2.0');
}
\Composition::has('php', '5.4.*');
\Composition::has('ext-mongo');
if (\Composition::isWindows()) {
    // ...
}
  1. Prestissimo — расширение для параллельной установки пакетов. Магия в том, что библиотека в несколько потоков скачивает требуемые пакеты и ложит их в кэш композера. Таким образом в несколько раз ускоряя их установку. Будет полезно к примеру для изолированных тестовых сред, где кэш композера как правило недоступен, а скорость сборки играет роль.
  2. PHP Debug Bar — полезный пакет для тех кто дебажит var_dump’ами. Он выводит в браузер панель с информацией о php, текущем запросе, различные сообщения или переменные, и даже информацию об ajax-запросах. Прост в установке, также есть интеграция со многими популярными фреймворками.
  3. Belt — пакет содержит 60+ полезных функций для работы с коллекциями, массивами и объектами. Часть функций похожи на функции для работы с коллекциями в Laravel.
  4. A Multi-Framework Composer Library Installer — полезное расширение для разработчиков пакетов. Оно позволяет устанавливать разрабатываемое расширение в правильную директорию в зависимости от указанного типа. Например для проекта на CakePHP composer.json кастомного расширения будет следующего вида:
{
    "name": "you/ftp",
    "type": "cakephp-plugin",
    "require": {
        "composer/installers": "~1.0"
    }
}

И при выполнении composer install пакет будет установлен в Plugin/Ftp/ директорию проекта.