Система построения сайта SBS "Web-Pro"
Средство для создания и удобного управления сайтом, имеющее расширенные
по сравнению с CMS (Content Management System) характеристики.
Более 5 лет успешного использования.
Подробнее
|
Composer: как это работает
К списку статей
Уже рассматривалось, что такое Composer, и что он делает. Теперь посмотрим, как он это делает, и какие изменения вносит в проект.
Composer выполняет два основных действия - управляет (устанавливает, удаляет и т.п.) пакетами и организует автозагрузку классов и файлов.
Автозагрузка это одно из главных достоинств этого менеджера - вам не нужно вручную подключать классы установленных пакетов (а их бывает очень много), всё будет сделано автоматически. Вам останется только вставить единственную строку вызова автозагрузчика autoload.php. Файловая структура ComposerComposer создает в корне проекта файлы composer.json, composer.lock и папку vendor с файлами. Рассмотрим их подробнее.composer.jsonЭто управляюще-описательный файл проекта. Он определяет, что это за проект, какие в нём пространства имён, классы, включаемые файлы, зависимости и т.п. Этот файл говорит Composer'у, какие пакеты нужно скачивать, обновлять и т.п. Это главный и самый важный файл для работы менеджера. Причем в корне находится файл вашего проекта, но у каждого пакета есть собственные composer.json, лежащие в корне каждого пакета. В свою очередь по этим файлам менеджер смотрит, какие какому пакету требуются зависимые пакеты для работы. Этот файл не нужен в процессе работы проекта (хотя это не значит, что его нужно удалять).composer.lockЭтот файл описывает, какие версии пакетов установлены в проекте в настоящий момент (он создается после установки или внесения изменений). Это нужно, например, при совместной работе, чтобы у вас и коллег использовались одинаковые версии пакетов. При этом имеется разница в работе команд install и update Composer'а. Команда install проверяет наличие файла composer.lock, и если он есть, устанавливает версии пакеты, указанные в нём. А команда update сразу смотрит файл composer.json и устанавливает новейшие пакеты. Этот файл также не нужен в процессе работы проекта.vendorВ эту папку Composer скачивает все пакеты, необходимость которых описана в composer.json. Изменять что-либо вручную в этой папке не следует. Помимо папок пакетов, здесь размещена папка самого Composer'а - composer. В ней находятся файлы автозагрузки - их Composer создает, основываясь на разделе autoload файлов composer.json. Также в папке vendor находится файл autoload.php - вспомогательный файл автозагрузки, именно его и нужно включать в своих скриптах. Папка vendor необходима при работе проекта, но напротив, при переносе проекта её можно безболезненно удалить, а потом восстановить командой Composer.Так как работает Composer?При установке проекта или пакета Composer смотрит composer.json и находит зависимые пакеты, а также данные автозагрузки. На основании этого он вносит изменения в файлы автозагрузки PHP, находящиеся в vendor/composer/. Далее он устанавливает пакеты и снова вносит изменения в файлы, уже основываясь на файлах composer.json этих пакетов. На этом этап установки закончен. В процессе работы проекта используются созданные файлы автозагрузки. В них находятся карты пространств имен, классов, файлов и соответственно их расположение. Ну а дальше используется стандартный механизм автозагрузки PHP по этим картам. Чтобы внести изменения в эти карты (при установке/удалении пакетов или изменении собственных скриптов) нужно снова выполнить команды Composer'а, который будет основываться на файлах composer.json. Читайте также:Как создать проект для Composer Как настроить автозагрузку
Рейтинг: 1.0. Голосов: 1
(0) Добавить комментарий
|