Разница между требованием и установкой против создания проекта в композиторе
Я не понимаю, как работает create-project
в композиторе. Возьмем Laravel в качестве примера.
Я могу установить эту фреймворк PHP с помощью следующей команды:
composer create-project laravel/laravel --prefer-dist
Эта команда устанавливает фреймворк для меня, оставляя меня с несколькими папками в корне моей директории:
- Приложение
- самозагрузки
- общественности
- поставщика
Плюс некоторые файлы.
Но когда я просто использую следующую команду композитора:
composer require laravel/laravel --prefer-dist
composer install
Затем это устанавливает только папку vendor
. Никакие другие файлы и папки не загружаются композитором.
Как получилось? Что это такое? Как композитор знает, какие другие файлы получить, когда я использую команду create-project laravel/laravel
, и почему я получаю только vendor
папку, когда я делаю require laravel/laravel
?
Ответы
Ответ 1
require
добавит зависимость к файлу composer.json
и загрузит его в каталог vendor
, как вы правильно заметили.
create-project
, с другой стороны, будет клонировать зависимость, т.е. использовать зависимость в качестве шаблона для нового проекта. Взгляните на хранилище за laravel/laravel
: https://github.com/laravel/laravel