Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Замена PEAR на Composer

Anna | 29.05.2014 | нет комментариев

Думаю, множество разработчиков, использующих PHP, теснее в знают, что знаменитые планы начинают отказываться от распространения через PEAR в пользу Composer (скажем PHPUnit и Symfony). Некоторые расстраиваются по этому поводу, мол, сейчас взамен однократной общесистемной установки того же PHPUnit, придётся включать его зависимостью в всякий план. Вовсе необязательно! Composer восхитительно может устанавливать пакеты для всеобщего применения.

Установка для одного пользователя

Это изумительно, но многие не знают о существовании команды global. Это даже не столько независимая команда, сколько префикс, меняющий поведение других команд, принуждающий их применять composer.jsonне из нынешней папки, а из домашней папки пользователя. Как написано в документации, команда:

php composer.phar global require fabpot/php-cs-fixer:dev-master

установит запрошенный пакет в $COMPOSER_HOME/vendor, а исполняемые файлы в$COMPOSER_HOME/vendor/bin.

Переменная $COMPOSER_HOME по умолчанию указывает на "/home/<user>/.composer" в *nix-системах, на"/Users/<user>/.composer" в OSX и на "C:Users<user>AppDataRoamingComposer" в Windows.

Вам останется только добавить $COMPOSER_HOME/vendor/bin в переменную окружения $PATH и вы сумеете запускать установленные через Composer приложения для всякого вашего плана.

Общесистеманя установка Composer

Безусловно, описанный выше способ, не вовсе то же самое, что делает PEAR. Установленные пакеты будут доступны только одному пользователю. Для большинства случаев, этого будет больше чем довольно. Но изредка желаннее Дабы некогда установленный пакет был доступен для всех пользователей. Это дозволено сделать, установив пакеты, скажем, для root-а, и добавив /root/.composer/vendor/bin в общесистемную конфигурацию оболочки (напр. в /etc/profile).

Есть и иной метод. Для наших внутренних нужд я написал небольшую BASH-обёртку для composer, меняющую поведение команды global.

Для установки нужно скачайть файл composer и разместить его в /usr/bin. В тезисе дозволено разместить его в всякую иную папку, доступную через $PATH, скажем для FreeBSD положительнее будет предпочесть/usr/local/bin (я использую данный путь и в Linux). От выбранной вами папки будет зависеть куда будут установлены composer.phar и зависимости. Для /usr/bin они будут помещены в /usr/share/composer, для/usr/local/bin в /usr/local/share/composer и т. д.

Позже скачивания сделайте файл исполняемым и запустите. Он скачает composer.phar, сделает пустойcomposer.json и сделает символическую ссылку на него в /etc для Linux и в ../etc для других систем.

Сейчас, при выполнении:

composer global require phpunit/phpunit:~4.0

PHPUnit будет установлен в /usr[/local]/share/composer/vendor, а исполняемый файл phpunit в/usr[/local]/bin

Немножко о граблях

Переходя с PEAR на Composer нужно помнить несколько пророческой:

  • В зависимости от выбранного вами метода и ваших настроек, может получиться так, что и Composer и PEAR будут устаналивать исполняемые файлы в одну папку. В этом случае, при удалении пакета PEAR, он может снести файл, установленный Composer.
  • Некоторые пакеты, распространяемые через Composer, применяют пакеты, распространяемые через PEAR. Скажем Phing. Так что снеся PEAR-овский PHP_PMD

Источник: programmingmaster.ru

 

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB