Если вы хотите научиться серьезно работать с языком программирования PHP, то вам нужно обязательно освоить такой инструмент как Composer. 

Давайте разберемся в этом видео, что такое Composer и зачем этот инструмент вам может пригодиться.

Composer - это просто программа, которая работает "в связке" с языком программирования PHP.

Без PHP использование composer просто не имеет смысла. 

Официальная ссылка на сайт composer:

https://getcomposer.org

Composer - это консольная программа. Это означает то, что у этой программы нет какого-либо графического интерфейса. Управлять этой программой мы с вами можем набирая команды в терминале операционной системы.

В каждой операционной системе есть терминал или консоль. Это некое окно, в котором можно вводить команды с помощью клавиатуры.

Composer - это та программа, которая работает через консоль (терминал).

Графических элементов по которым можно покликать и повзаимодействовать в этой программе нет.

Composer - это менеджер зависимостей для языка программирования PHP. 

Если вы работали с фронтенд проектами, которые написаны на языке программирования Javascript, на HTML, на CSS, вам, возможно, приходилось уже встречаться с таким понятием как менеджер пакетов. Это такие программы, как npm или yarn.

Composer - это менеджер зависимостей, который написан именно для языка PHP, в отличии от npm и yarn.

Что же такое "зависимость"? Что же это за менеджер, который управляет зависимостями.

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

Такие решения называются библиотеки, зависимости или пакеты. 

К примеру, вы разрабатываете какой-либо Интернет магазин и вам нужно написать какой-то модуль, который бы отправлял сообщение на email пользователя. Написать такой модуль с нуля довольно трудно. 

Но, к счастью, уже есть готовые решения, которые могут решить эту задачу намного проще и быстрее.

Например, есть такая библиотека как swiftmailer. Подключив ее к проекту мы получаем все необходимые классы и методы для работы с email. 

Composer - это менеджер для подключения и управления этими сторонними библиотеками или пакетами в вашем PHP-проекте.

Еще его называют пакетный менеджер.

Composer управляет этими пакетами, чтобы они подключились и хорошо работали.

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

Зачем же в таком случае нужен composer?

  1. Много рутинных операций при установке.

Нужно производить настройки, подстраивать автозагрузку компонентов и.т.д.

2. Трудность в обновлении библиотек на новые версии.

Библиотеки имеют такое свойство расширяться и обновляться. Если вы вручную будете обновлять каждый пакет в вашем проекте, это работа довольно трудная и большая.

В composer для обновления пакетов достаточно выполнить одну команду и все пакеты успешно обновляться.

3. Одна библиотека может требовать для своей работы другую, другая третью и.т.д.

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

Бывают такие библиотеки, которые для своей работы могут требовать десяток и даже сотни других библиотек. 

Если это все скачивать и подключать вручную на это может уйти месяцы работы. 

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

Пожалуй, это самое важное преимущество почему стоит использовать composer  в своей работе. 

4. Трудность переноса проекта на рабочий сервер из-за большого объема библиотек.

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

Для того, чтобы перенести изменения на рабочем сервере, вам каждый раз нужно будет передавать такой большой объем данных.

Решение этой проблемы с composer довольно простое. В программе composer есть файл настроек, который вы устанавливаете на вашем домашнем компьютере и файл настроек, который вы устанавливаете на удаленном компьютере.

Можно сделать так, чтобы все библиотеки появились на удаленном сервере, выполнением всего одной команды composer и все библиотеки скачаются автоматически.

Пожалуй, это все основные возможности, которые я хотел выделить в программе composer. Это то основное, что на начальном этапе важно знать и понимать. 

Конечно, создавать проекты без composer на PHP можно, но нужно ли вам это?

Если пользоваться любым современным фреймворком (symfony, laravel), то без composer вообще не обойтись. 

Такой вот важный инструмент. Очень рекомендую освоить его работу, чтобы повысить свой уровень знаний и продвинуться в веб-программировании.