walkweb / dw-framework
Micro MVC Framework
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/walkweb/dw-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-12-16 12:35:18 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.
Первая версия самописного микрофреймворка, просто чтобы ужаснуться :)
