Найти в Дзене
CODEARMY

PHP. Что такое Composer?

Все говорят о composer - о том как его установить и использовать, но мало кто говорит что это вообще такое, ограничиваясь словами что это пакетный менеджер. Основная цель composer - сделать совместное использование кода проще. Как мне в свой проект интегрировать код, написанный другим программистом? Раньше мне надо было взять файлик, подключить его или скопировать весь код и вставить к себе. Протестировать, посмотреть, нет ли проблем совместимости, не совпадают ли имена переменных. С появлением Composer мне достаточно написать в командной строке, что мне нужна такая программа от вот этого автора и всё, программа эта через несколько секунд окажется у меня на сервере. Подключаю и использую. Конечно, проблемы решены не все. В программах всё та же могут быть ошибки и недоработки, но очень много проблем, например, с конфликтами имён или версиями решены почти полностью. А для ошибок на github есть отдельный раздел для жалоб - я могу написать о проблеме, или посмотреть есть ли сейчас какие-ли

Все говорят о composer - о том как его установить и использовать, но мало кто говорит что это вообще такое, ограничиваясь словами что это пакетный менеджер.

Основная цель composer - сделать совместное использование кода проще.

Как мне в свой проект интегрировать код, написанный другим программистом?

Раньше мне надо было взять файлик, подключить его или скопировать весь код и вставить к себе. Протестировать, посмотреть, нет ли проблем совместимости, не совпадают ли имена переменных. С появлением Composer мне достаточно написать в командной строке, что мне нужна такая программа от вот этого автора и всё, программа эта через несколько секунд окажется у меня на сервере. Подключаю и использую.

Конечно, проблемы решены не все. В программах всё та же могут быть ошибки и недоработки, но очень много проблем, например, с конфликтами имён или версиями решены почти полностью.

А для ошибок на github есть отдельный раздел для жалоб - я могу написать о проблеме, или посмотреть есть ли сейчас какие-либо проблемы.

Composer сам по себе это набор php-файлов внутри архива. Архив этот не простой, а особый формата phar.

Суть этого архива в том, что я могу выполнить код внутри php-файла и показать ответ на экране не доставая файл из архива.

По умолчанию, к PHAR архивам есть только доступ на чтение. Для того, что бы добавить файлы в архив я выставил phar.readonly = 0 в php.ini.

Примеры:

Создание архива

$phar = new Phar('my.phar');

Положим в архив текстовый файл hello.txt а в самом текстовом файле будет надпись Hello World

$phar['hello.txt'] = 'Hello World';

Отобразим на экране содержимое этого текстового файла сразу из архива. Обратите особое внимание, мы не извлекаем сначала файл, а сразу берём файл из архива.

file_get_contents('phar://my.phar/hello.txt');

В видео показана работа с phar и с реальными php-файлами.

Для класса Phar по работе с архивами в PHP есть много методов.

http://php.net/manual/ru/class.phar.php

В следующем видео перейдём непосредственно к менеджеру зависимостей. Подписывайтесь на канал CodeArmy на youtube https://www.youtube.com/c/CodeArmyRu что бы не пропустить выход следующих видео.