🧱 Суть

Команда composer create-project laravel/laravel my-app создаёт новый Laravel-проект из официального шаблона и сразу устанавливает все зависимости.

📦 Проблема

1. Путают шаблон и проект

composer create-project laravel/laravel my-app

не создаёт папку laravel/laravel, а использует её как исходный шаблон.

2. Неочевидно, что происходит “под капотом”

Кажется, что это просто создание папки, но на самом деле выполняется установка полноценного фреймворка.

✅ Решение

Понимать, что команда состоит из трёх этапов.

💻 Код

1. Берётся шаблон Laravel

laravel/laravel

Это официальный стартовый репозиторий (скелет проекта).

2. Создаётся папка проекта

my-app/

Сюда копируется и настраивается Laravel.

3. Устанавливаются зависимости

Composer автоматически:

  • скачивает Laravel
  • устанавливает PHP-пакеты из composer.json
  • создаёт vendor/

Итоговая структура

my-app/
 ├── app/
 ├── bootstrap/
 ├── config/
 ├── public/
 ├── routes/
 ├── vendor/
 └── artisan

Важный момент

  • laravel/laravel – это шаблон (репозиторий)
  • my-app – это имя проекта

Аналогия

create-project = "скачай готовый шаблон и разверни его как новый проект"

🎯 Вывод

  • Composer создаёт проект из готового шаблона
  • Laravel не пишется с нуля каждый раз – используется scaffold
  • my-app – это просто имя директории нового проекта

🔗 Связано