Реализовано
-
Автоподгрузка классов
-
Роутинг
-
Работа с MySQL
-
Контроллеры
-
Модели
-
Виды
-
Кэширование html данных
-
Кэширование результатов SQL запросов
-
Обработка исключений
-
Класс-валидатор для стандартных проверок входящих данных на стороне php
-
Работа с сессиями
-
Работа с куками
-
Пагинация
Безопасность
-
Защита от SQL-инъекций
-
Защита от CSRF-атак (пока реализован простейший вариант защиты, когда на всю сессию генерируется один токен)
В планах
-
Капча
-
Регистрация и авторизация
-
JS-скрипт для стандартных проверок вводимых данных на стороне фротн-энда
-
Защита от спама от неавторизованных пользователей (например, перебор логинов и паролей в форме логина)
-
Отправка почты
-
Замена текущего, простейшего роутинга, на более функциональный
-
Система шаблонов дизайна и переключение между ними в настройках пользователя (база для этого уже
заложена, но реализовать можно будет после создания регистрации)
-
Система логгирования
DW Framework
Занимаясь программированием, в последнее время ощущаю, как меня все больше и больше тянет на минимализм. Все
больше раздражает, когда даже для незначительных целей используются громоздкие библиотеки и фреймворки.
Пользоваться ими конечно продуктивно и нужно в ежедневной работе. Но... иногда хочется удовлетворить свои
внутренние идеалы (или тараканы, с какой стороны посмотреть) минимализма.
DW Framework попытка создать микрофтеймворк, с базовым функционалом, и в тоже время с
минимальным количеством кода и максимальной производительностью.
Yii2 в базовой комплектации, чтобы отдать главную статическую страницу съедает 2.5 мб памяти. Если вам
эти цифры ничего не говорят то скорее всего вам будет непонятна моя позиция.
При написании DW Framework используются следующие подходы:
-
Минимализм кода если один и тот же функционал, можно реализовать через 10 000 строк кода готовой библиотеки,
или за 200 строк своего кода, который будет делать только то, что нужно зачем лишние тысячи строк? (именно
по этой причине используется самописная, простейшая обертка для работы с SQL-запросами, а не «тучные» готовые
библиотеки)
-
Минимализм расхода ресурсов при разработке считал каждые десятки килобайт расходуемой памяти и милисекунды
времени выполнения скрипта.
-
Ориентир на производительность при выборе между «сделать код удобный для программистов» или «сделать
максимально производительный код» выбирается последнее. Единственное исключение ООП подход
(код без объектов будет работать еще быстрее, и ВКонтакте, например, написан как раз без ООП).
-
Не используется Composer при всем том, что этот менеджер зависимостей является «Best of the
Best», он, своей простотой, подталкивает программистов на опасную дорожку захламления проекта ненужными зависимостями.
P.S.
Разумеется, никого не призываю использовать мой фреймворк для рабочих проектов. Для этих целей есть распространенные
современные фреймворки. Рассматривайте DW Framework как домашнее баловство.