walkweb / dw-framework
Micro MVC Framework
Requires
- php: >=7.4.0
- ext-fileinfo: *
- ext-gd: *
- ext-json: *
- ext-mbstring: *
- ext-mysqli: *
- gumlet/php-image-resize: ^2.0
- phpmailer/phpmailer: ^6.9
- ramsey/uuid: ^4.2
Requires (Dev)
- phpunit/phpunit: ^7.4
This package is auto-updated.
Last update: 2025-04-16 11:10:54 UTC
README
DW-Framework – минималистичный и производительный MVC-фреймворк
Он был написан для следующих целей:
- «Хочешь разобраться как что-то работает – напиши свой аналог с нуля». Мне было интересно как работают MVC-фреймворки, и чтобы разобраться в этом я написал свой 😈
- Получить фреймворк с максимальной производительностью – по этой причине не используются интерфейсы, не используются стандартные PSR Request/Response, переменные окружения (конфиг сделан через константы) и прочее.
- В качестве отдыха от навороченной и тяжелой связки Symfony+Doctrine с которой работаю на обычной работе уже последние 5 лет.
Если вам интересно посмотреть пример качественного ООП — загляните в Battle Module. В противоположность этому проекту, там я заморочился с качественным ООП, но производительность, разумеется, страдает (чем больше ООП-наворотов и абстракций — тем хуже производительность).
Установка
cd /var/www/
git clone https://github.com/WalkWeb/DW-Framework.git dw-framework.loc
cd dw-framework.loc
composer i
Копируем config.php
переименовываем в config.local.php
и указываем нужные параметры
Выполнение миграций и фикстур:
make migration
make fixture
Далее необходимо настроить локальный домен (nginx/apache/встроенный веб-сервер в php — на ваш выбор)
Запуск тестов
Запуск тестов:
make test
Запуск покрытия кода тестами:
make coverage
Результат можно посмотреть в директории html.
Демо-пользователь
login: Login-1
password: 12345
Покрытие тестами
Планы
- Перевод README.md и всех комментариев в коде на английский
- Добавить phpstan
- Добавить проверку code style
Класс | Контейнер | Статика | Примечание |
---|---|---|---|
Captcha | + | ||
Connection | + | ||
Cookie | + | ||
Csrf | + | ||
Logger | + | ||
Migration | |||
Runtime | + | ||
Session | + | Убрать статику | |
Validator | + | ||
Request | + | ||
Mailer | + |
P.S.
Первая версия самописного микрофреймворка, просто чтобы ужаснуться :)