Структура проекта
Проект Winter намеренно плоский: несколько файлов в корне и одна папка под ваш
код. Нет config/, нет routes/, нет app/ — конфигурация в .env и Boot,
а маршруты объявляются атрибутами прямо в контроллерах.
Дерево
my-app/
├── bootstrap.php — класс Boot: вся конфигурация и хуки
├── call — CLI-вход (Boot::cli), запуск команд
├── composer.json — пакет проекта; зависит от flytachi/winter-kernel
├── public/
│ ├── index.php — фронт-контроллер FPM (Boot::web)
│ └── static/ — статические ассеты
├── main/ — ваш код (PSR-4, namespace Main\)
│ └── MainController.php
├── storage/
│ ├── cache/ — кеши ядра и приложения (mapping.php, di.php…)
│ └── logs/ — файлы логов при LOG_OUTPUT=file
├── .env — переменные окружения
└── vendor/Что за что отвечает
| Путь | Роль |
|---|---|
bootstrap.php |
Класс Boot extends BaseBoot — конфигурация проекта и все хуки. См. Конфигурацию |
call |
Точка входа CLI: Boot::cli($argv). Все команды call … идут сюда. Должен быть исполняемым (chmod +x call) |
public/index.php |
Фронт-контроллер под PHP-FPM и dev-сервер: Boot::web() |
public/static/ |
Файлы, отдаваемые веб-сервером напрямую |
main/ |
Ваш код: контроллеры, сервисы, репозитории. PSR-4-корень Main\ |
storage/cache/ |
Кеши маршрутов и DI (в проде). Должна быть доступна для записи |
storage/logs/ |
Логи, когда LOG_OUTPUT=file |
.env |
Ключ, таймзона, режим отладки, логирование, БД |
Один PSR-4-корень — не предел
Стартер задаёт один префикс Main\ → main/. Добавляйте свои
(Api\ → api/, Web\ → web/) в composer.json — сканер маршрутов и DI
проходят по всем PSR-4-корням, так что новые контроллеры находятся автоматически.
Растёт проект — что добавить
Эти папки и файлы стартер не создаёт заранее; заводите их по мере надобности:
| Когда нужно | Добавьте |
|---|---|
| Шаблоны представлений | resources/ |
| Рантайм Swoole | server.php (Boot::swoole()) |
| Исполнитель фоновых задач | wKernelExecutor (Boot::executor()) |
Точки входа
Каждому рантайму — свой файл-однострочник, и все зовут один Boot:
| Файл | Рантайм | Тело |
|---|---|---|
public/index.php |
PHP-FPM / dev | Boot::web() |
server.php |
Swoole | Boot::swoole() |
call |
CLI | Boot::cli($argv) |
wKernelExecutor |
Задачи/джобы | Boot::executor($argv) |
Дальше
- Конфигурация —
.envи хукиBootподробно - Быстрый старт — добавить свой маршрут