Установка
Новый проект Winter создаётся одной командой Composer. Она разворачивает стартовый каркас, генерирует ключ и готова к запуску — сервер поднимается сразу.
Требования
| Требование | Значение |
|---|---|
| PHP | 8.4 или выше |
| Composer | 2.x |
| Расширения (обязательно) | ext-pcntl, ext-posix, ext-fileinfo |
Опциональные расширения ставятся под конкретные задачи:
| Расширение | Зачем |
|---|---|
ext-pdo |
Доступ к базе данных |
ext-simplexml |
Разбор XML-тел запросов |
ext-bcmath, ext-decimal |
Приведение к точным числовым типам в привязке параметров |
ext-swoole |
Рантайм Swoole (корутины, пул соединений) |
ext-shmop |
Разделяемая память для доставки полезной нагрузки в Swoole-режиме |
Проверка окружения
Быстро проверить версию и расширения: php -v и php -m.
Создание проекта
composer create-project flytachi/winter my-app
cd my-appcreate-project разворачивает стартовый пакет и запускает хук
post-create-project-cmd, который:
- делает
storage/доступной для записи (chmod -R 777 storage); - вызывает
php call cfg init— приводит проект в рабочее состояние.
Что делает cfg init
- переписывает
nameвcomposer.jsonнаproject/<папка>, чиститauthorsиkeywords; - копирует
.envиз шаблона; - генерирует свежий 64-символьный
WINTER_KEY; - кладёт stub-мету для PhpStorm.
После этого проект готов — открывайте main/MainController.php и пишите код.
Первый запуск
php call run devСервер поднимется на http://0.0.0.0:8000 (встроенный сервер PHP). Откройте адрес
в браузере — увидите ответ стартового контроллера.
Swoole
php call run dev использует встроенный сервер PHP и не требует Swoole. Для
рантайма Swoole (php call run) поставьте расширение: pecl install swoole.
Подробнее — в CLI → run.
Клонировали существующий проект?
На свежей машине после git clone:
composer install # зависимости
chmod -R 777 storage # права на storage
chmod +x call # бинарник CLI исполняемый
php call cfg env -i # создать .env, если его нет
php call cfg key -g # перегенерировать WINTER_KEY
php call storage init # создать storage/{cache,logs}
php call run dev # http://0.0.0.0:8000Дальше
- Структура проекта — что за что отвечает
- Конфигурация —
.envи хукиBoot - Быстрый старт — первый маршрут за 5 минут