# Шаблон HTTP приложения
Пакет httpsoft/http-app представляет собой шаблон приложения для быстрого создания простых, но качественных веб-приложений и API. «Из коробки» шаблон приложения настроен на работу с JSON для быстрой разработки REST API.
Ядром этого шаблона приложения является микрофреймворк HttpSoft\Basis. По умолчанию также используются: devanych/di-container, реализующий PSR-11, и логгер monolog/monolog, реализующий PSR-3. Вы можете легко изменить контейнер и логгер на ваши предпочтительные реализации соответствующих PSR.
# Установка
Для этого шаблона проекта требуется PHP версии 7.4 или новее.
Используйте Composer и его следующую команду для установки:
composer create-project --prefer-dist httpsoft/http-app <app-dir>
Чтобы проверить установку, перейдите в <app-dir>
и запустите встроенный веб-сервер PHP:
cd <app-dir>
composer run serve
После этого откройте в браузере http://localhost:8080
.
# Тестирование и проверка
В каталоге приложения выполняются следующие команды:
composer run test
— запускает тесты.composer run static
— запускает статический анализ кода.composer run cs-check
— запускает проверку стандартов кодирования.composer run cs-fix
— запускает автоматическое исправление нарушений стандартов кодирования.composer run check
— запускает проверку стандартов кодирования, статический анализ кода and тесты.
# Структура директорий
По умолчанию шаблон приложения имеет следующую структуру:
bin/ Исполняемые консольные скрипты.
chmod-var.php Рекурсивное изменение прав директории "var/".
config/ Файлы конфигурации.
config.php Основная конфигурация.
container.php Внедрение зависимостей.
pipeline.php Конвейер посредников.
routes.php Маршруты HTTP-запросов.
public/ Общедоступные файлы из Интернета.
index.php Сценарий входа (фронт-контроллер).
src/ Исходный код приложения.
Http/ Классы HTTP-приложения (экшены, посредники и т.д.).
Infrastructure/ Вспомогательные классы (фабрики, слушатели и т.д.).
Model/ Классы модели предметной области (сущности, репозитории и т.д.).
tests/ Набор тестов для приложения.
vendor/ Установленные пакеты Composer.
var/ Временные файлы (журналы, кеш и т.д.).
Вы можете изменить структуру шаблона приложения по своему усмотрению.
# Жизненный цикл приложения
Подробнее о создании и использовании экземпляра приложения читайте здесь и здесь.
- HTTP-запрос обращается к сценарию входа (фронт-контроллеру) public/index.php.
- Сценарий входа загружает конфигурацию, внедряет зависимости и создает приложение для дальнейшей обработки запроса.
- Приложение регистрирует конвейер посредников и маршруты запроса при помощи компонентов HttpSoft\Router и HttpSoft\Runner.
- Приложение запускает обработку текущего запроса, пропуская его через всю очередь установленных ранее посредников и обработчиков.
- В зависимости от результата обработки запроса возвращается HTTP-ответ, а при помощи компонента HttpSoft\Emitter, приложение отправляет заголовки ответа и выводит тело ответа в текущий выходной буфер.