CLI · Winter Console

Команда make

make создаёт скелеты компонентов из шаблонов: контроллеры, сервисы, репозитории, сущности, middleware, джобы, команды. Каждый флаг добавляет один тип; флаги комбинируются, чтобы сгенерировать несколько файлов за раз.

Формат call make .Name -флагиСуффикс добавляется самСуществующие не перезаписываются

Что такое make и зачем

make — генератор кода по шаблонам.

Проблема. Каждый новый компонент — это одинаковая обвязка: неймспейс, стереотип, базовый класс, заготовка метода. Писать её руками — рутина и источник опечаток.

Решение. Опишите имя и тип флагом — make возьмёт шаблон, подставит неймспейс и имя класса, положит файл в нужную папку под PSR-4-корнем и подключит к автозагрузке. Об этом и раздел.

Синтаксис

bash
call make <dot.notation.Name> -[флаги] [--mvc]

Первый аргумент — путь в точечной нотации, заканчивающийся именем класса. Флаги выбирают, какие типы сгенерировать. Суффикс типа (Controller, Service…) генератор добавляет сам:

bash
php call make -c .User    # → UserController  (не .UserController!)
php call make -s .User    # → UserService
php call make -r .User    # → UserRepository

Точечная нотация → путь

Точки в имени становятся папками; корнем выступает подходящий PSR-4-префикс:

Ввод Куда попадёт
.User Первый PSR-4-корень приложения (умный поиск папки)
api.user.Profile <корень>/Api/User/ProfileController.php
acme.app.http.User Самый длинный совпавший PSR-4-префикс

Если путь пустой (.Name), make кладёт файл в первую существующую подпапку (Controllers/, затем Controller/, иначе рядом по namespace). Опция --mvc принудительно добавляет папку-категорию.

Флаги

Один флаг — один компонент. Каждый добавляет к имени свой суффикс, чтобы имя класса читалось само: make -c .User даёт UserController.

HTTP

Флаг Компонент Суффикс
-c Контроллер Controller
-m Middleware Middleware

Данные

Флаг Компонент Суффикс
-e Сущность
-d DTO Dto

Бизнес-слой

Флаг Компонент Суффикс
-s Сервис Service
-r Репозиторий Repository
-t Store Store

Фоновые компоненты

Флаг Компонент Суффикс
-P Процесс Process
-N Демон Daemon

Конфигурация и консоль

Флаг Компонент Суффикс
-D Конфигурация БД DbConfig
-R Конфигурация Redis RedisConfig
-n Своя команда

Комбинирование флагов

Несколько флагов на одно имя генерируют набор связанных файлов сразу:

bash
php call make -csre .User          # Controller + Service + Repository + Entity
php call make -csre .Order --mvc   # то же, но в папках Controllers/ Services/ ...

Опция --mvc

Оборачивает путь в папку-категорию по типу компонента: Controllers/, Services/, Middlewares/, Repositories/, Entities/, Dto/, Processes/, Commands/, а для всего остального — Utils/.

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

Примеры

bash
php call make -c api.user.Profile   # → Api/User/ProfileController.php
php call make -P .Import             # процесс в Processes/, если каталог есть
php call make -n .MySync             # своя консольная команда (Cmd)
php call make -cs .User .Order .Item # несколько имён за раз

Существующие файлы не перезаписываются

make никогда не затирает файл — существующий помечается [EXISTS], а не [CREATED]. Ваш код в безопасности.

Дальше