Установка Composer в OpenServer
26 мая 2014 PHP 30589 просмотров
Composer - это инструмент для сборки проектов и управления зависимостями в PHP. Представьте, когда ваш проект написан на Zend Framework, использует Doctrine в качестве ORM, работает с сокетами при помощи Ratchet и т.д. Скорее всего, вам будет непросто создать один загрузчик, без конфликтов, чтобы всегда был доступ к какому-то классу. Composer же собирает все эти зависимости по заданным условиям. Всё, что вам нужно - это правильно описать файл-конфигуратор composer.json. Но статья пойдет не совсем об этом, так как хорошими людьми написано уже достаточное количество хорошего материала на эту тему.

Например, эта статья.

Но обычно не все мелочи учтены в подобного рода статьях. Когда я работаю в Windows-окружении, то в качестве web-сервера я использую OpenServer. Он довольно прост в настройке и установке, и почти всегда справляется со своими задачами. Но Composer я на него поставил не с первого раза...

В принципе, на сайте инструмента довольно подробно описан процесс установки, в том числе и на Win. Даже описали ситуацию, когда нужно добавить openssl в extensions в конфиге PHP. Именно в этом и была проблема в установке. Во всех случаях установщик, или же уже готовый phar-файл, отправляли мне ошибку, что SSL не включен. Версия PHP - 5.4, phpinfo() показывает, что OpenSSL стоит. В чем же дело? Статьи с решением этой проблемы я не нашел и стал задумываться, почему же не видно модуля ssl? Одним из вопросов, который я задал сам себе, был таким - "А тот ли конфиг использует PHP, который используется Composer’ом?" Это был верный вектор, через какое-то время оказалось, что PHP, запущенный из командной строки использует не тот php.ini, который я изменял, для CLI есть свой конфиг. Но его нигде нет, я облазил все папки OpenServer'а. Оказывается, для CLI конфиг всегда ищется в C:/Windows. Было решено скопировать туда php.ini, а еще лучше, сделать ссылку на файл, редактируемый нами.
mklink C:\Windows\php.ini C:\OpenServer\userdata\temp\config\php.ini
После этого я удачно установил Composer, настроил зависимости. Ну а дальше вы знаете.