Команда 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/, иначе корень). Опция --mvc принудительно
добавляет папку-категорию.
Флаги
HTTP
| Флаг | Компонент | Суффикс |
|---|---|---|
-c |
Controller | Controller |
-m |
Middleware | Middleware |
Данные
| Флаг | Компонент | Суффикс |
|---|---|---|
-e |
Entity | — |
-d |
Dto | Dto |
-p |
Response | — |
Бизнес-слой
| Флаг | Компонент | Суффикс |
|---|---|---|
-s |
Service | Service |
-r |
Repository | Repository |
-t |
Store | Store |
Асинхрон / процессы
| Флаг | Компонент | Суффикс |
|---|---|---|
-J |
Job | Job |
-P |
Process | Process |
-N |
Daemon | Daemon |
-W |
WebSocket | WebSocket |
Конфиг / консоль
| Флаг | Компонент | Суффикс |
|---|---|---|
-D |
DbConfig | DbConfig |
-R |
RedisConfig | RedisConfig |
-n |
Cmd (своя команда) | — |
Комбинирование флагов
Несколько флагов на одно имя генерируют набор связанных файлов сразу:
php call make -csre .User # Controller + Service + Repository + Entity
php call make -csre .Order --mvc # то же, но в папках Controllers/ Services/ ...Опция --mvc
Оборачивает путь в папки-категории: Controllers/, Services/,
Repositories/, Entities/, Dto/, Requests/, Jobs/, Processes/,
Sockets/, Commands/, Utils/.
Примеры
php call make -c api.user.Profile # → Api/User/ProfileController.php
php call make -J .WelcomeEmail # Job в Jobs/ (умный поиск)
php call make -n .MySync # своя консольная команда (Cmd)
php call make -cs .User .Order .Item # несколько имён за разСуществующие файлы не перезаписываются
make никогда не затирает файл — существующий помечается [EXISTS], а не
[CREATED]. Ваш код в безопасности.
Дальше
- Консоль — обзор — анатомия команд
- script — запуск своих команд (
-n) - Контроллеры · Сервисы — что генерируется