Установка Composer в OpenServer

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, настроил зависимости.