Команда make
make создаёт скелеты компонентов из шаблонов: контроллеры, сервисы, репозитории,
сущности, middleware, джобы, команды. Каждый флаг добавляет один тип; флаги
комбинируются, чтобы сгенерировать несколько файлов за раз.
Что такое make и зачем
make — генератор кода по шаблонам.
Проблема. Каждый новый компонент — это одинаковая обвязка: неймспейс, стереотип, базовый класс, заготовка метода. Писать её руками — рутина и источник опечаток.
Решение. Опишите имя и тип флагом — make возьмёт шаблон, подставит неймспейс
и имя класса, положит файл в нужную папку под PSR-4-корнем и подключит к
автозагрузке. Об этом и раздел.
Синтаксис
call make <dot.notation.Name> -[флаги] [--mvc]Первый аргумент — путь в точечной нотации, заканчивающийся именем класса. Флаги
выбирают, какие типы сгенерировать. Суффикс типа (Controller, Service…)
генератор добавляет сам:
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 |
Своя команда | — |
Комбинирование флагов
Несколько флагов на одно имя генерируют набор связанных файлов сразу:
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/.
Без этой опции файл кладётся туда, где вы его назвали, а если каталог с привычным именем уже существует — в него.
Примеры
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]. Ваш код в безопасности.
Дальше
- Консоль — обзор — анатомия команд
- script — запуск своих команд (
-n) - Контроллеры — что генерируется флагом
-c