PHP для начинающих. Урок #23 - Composer в PHP. Менеджер зависимостей. Автозагрузка классов

preview_player
Показать описание


00:00 Что такое пакеты или библиотеки и для чего нужен composer

01:30 Установка composer
04:40 Использование composer init
06:00 Как работает автолоадер в composer
07:00 Зачем нужна папка vendor и как с ней работать
08:50 Использование composer dump-autoload
09:20 Как и где искать библиотеки в сети
10:00 Как установить стороннюю библиотеку
11:10 Установка нужных версий библиотек
12:00 Решение проблем с установкой библиотек, проверка зависимостей
15:40 Установка библиотеки определенной версии
20:00 Переустановка библиотек и composer update
21:30 Установка пакетов только в dev окружении
24:00 Оптимизация autoloader в composer
25:00 Автоматическиий запуск команд после или до установки пакетов

#php #обучение #программирование #обучающие #composer #packagist
Рекомендации по теме
Комментарии
Автор

самый лучший менеджер пакетов который я видел)

nikfill-ffhz
Автор

Уроки хорошие, спасибо! Если вам не трудно, то делайте пожалуйста более крупный шрифт. С ноута неудобно смотреть.

suhomlinov-vitaliy
Автор

Здравствуйте папку вендор в гитхаб не будем передавать? То есть вендор гитигнор можно прописать?все видео оказ есть ответ

РасулМырзакулов-эи
Автор

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

Вот тот же юнити - генератор случайных чисел. Попробуйте вызвать метод Random - конфликт ) Не спасло пространство имен. И пойдете ручками прописывать полное имя или в use указывать конкретный класс.

Composer. Сторонняя программа, php скрипт. А что, в языке нет никакого механизма для реализации автозагрузки классов? Как бы есть spl_autoload_register(), но как бы и нет ) Вот C# живет без композера и ничего - автозагрузка классов из коробки. Строго типизированный язык, кстати, в отличии от PHP.
А PHP у нас...непонятно типизированный - пиши и так и сяк, но любим в строгую типизацию, но стандарта такого нет...в PSR ничего такого не встречал.
Хотя и PSR забавный стандарт. И вроде есть и вроде куча компаний отказались от него. И вроде в каждой конторе свой стандарт написания кода. Ну это ж PHP.

Установка, переустановка, библиотек, поиск в сети, проблемы, зависимости - жуть как интересно! Современный язык или фреймворк...да тот же юнити - 1 клик и все установлено. Встроенный магазин ассетов. C# VS - аналогично. Большинство программ - аналогично, все расширения - плагины в 1 клик. 2024 год .

Папка vendor - не храним в гит? Потому что никто не хранит в гит т.к. есть файл composer.lock, который установит... в точности такие же версии пакетов.
Разница? Её нет. Экономим место на серверах гитхаба? Любим +1 команду composer install? Не любим хранить всё файлы проекта целиком - т.е. весь проект, а не часть проекта с ссылками на докачку пакетов, которые, разумеется всегда будут доступны (в связи с текущей ситуацией ). Разработчики никогда не изменят ни байт пакета, коих в vendor +100500 и связаны они так, что разобраться невозможно? Ну ок -как говорилось в фильме все побежали..и я побежал. )

Интересной айти получается. Всё делают всё одинаково и ни о чем не задумываютя, убеждая, что так и должно быть.
А потом устарело, пофиксили, из не строго типизированного в строго типизированный язык и снова убеждают, что вот сейчас так как должно быть.
Интересно, а когда PHP уже окончательно позаимствует хорошее, правильное ООП у C#, а не будет воровать кусочками? Вопросы...

NewUser