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 | + |
Первая версия самописного микрофреймворка, просто чтобы ужаснуться :)