Данный проект является учебным и не предназначен для использования на production среде. Единственная его цель - помочь изучить подходы при разработке кода и быть иллюстративным материалом на курсе "Паттерны и практики написания кода".
В проекте могут встречаться недоработанные части кода и незавершённые реализации, что является допустимым, поскольку упор делается на возможность быстрого погружения в код. В реализации осознанно содержится минимальнонеобходимый набор библиотек и классов.
root/
|- app/
| ├─ Command/
| ├─ Db/
| └─ Framework/
|- bin/
|- data/
|- etc/
| └─ di/
| └─ framework/
|- sripts/
|- src/
| ├─ Controller/
| ├─ Model/
| | ├─ Entity/
| | └─ Repository/
| ├─ Service/
| └─ View/
|- test/
└─ web/
Ядро проекта. В нём загружаются настройки сервиса, инициализируется каркас и происходит поиск необходимого контроллера.
Исполняемые файлы для запуска служебных утилит.
Хранит всю динамическую информацию в sql lite базе данных.
Содержит конфигурационные настройки.
Точка расширения фреймворка. Именно сюда разработчики помещают свой код. Реализован на основе паттерна MVC. Controller - содержит контроллеры. Точка входа всех запросов к серверу и последующего формирования ответа. Model - содержит модели. Получает данные из различных источников (БД, внешнее api и т.д.). Service - слой бизнес-логики. Содержит код, который чаще всего может подвергаться рефакторингу и изменению. View - содержит представление. Форммирует json ответ сервера.
curl запросы для взаимодействия с микросервисами.
Содержит юнит- и интеграционные тесты. В папке показан пример юнит-теста для одного класса.
Точка вход в проект, которая занимается первичной загрузкой модулей и подготавкой проекта к обработке запроса.
Микросервис работает на php версии >=8.1 Для разворачивание проекта есть два способа:
Способ 1
Установить php интерпретатор и все необходимые зависимости. Затем в корне проекта выполнить
make deploylocal
после этого в браузере проверяем работоспособность проекта
http://127.0.0.1:8080/product/list
Способ 2
Установить Docker и Docker compose. Затем в корне проекта выполнить
make deploy
после этого в браузере проверяем работоспособность проекта
http://127.0.0.1:8080/product/list
если использовали виртуализацию через minikube или другой инструмент, то url может быть примерно таким
http://minikube:8080/product/list
для удаления образа выполнить
make delete
Для выполнения запросов к проекту вы можете воспользоваться подготовленными curl запросами из папки scripts.
Для продвинутых пользователей в корне проекта располагается postman коллекция. Если у вас не установлено это приложение, то перейдите на сайт postman.com, затем выберете ОС и дальше нажимаете загрузить. После установки postman, переходите в приложение. В нём нажимаете кнопку import и в проводнике переходите в корень проекта.