Я не понимаю, как работает 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
?
require
добавит зависимость от файла composer.json
и загрузит его в каталог vendor
как вы правильно заметили.
create-project
с другой стороны, будет клонировать зависимость, то есть использовать зависимость в качестве шаблона для нового проекта. Взгляните на хранилище за laravel/laravel
: https://github.com/laravel/laravel