R50 7d87dfc39896e9085c69187cd1071e6c
Senior PHP + JS/Vue + Верстка

Собственный php-фреймворк Evas PHP (OpenSource)

Добавлено 28 апр 2020 в 17:11
Проект частично выгружен на GitHub (https://github.com/evas-php).

В феврале 2020 полная выгрузка стабильного релиза.

В мае 2020 планируется документация (https://evas-php.com).




Фреймворк модульный, без внешних зависимостей, с возможностью тонкой
кастомизации, много полезных штук из коробки. App, Di, Loader, Routing
(MapRouter, AutoRouter, Controller), Validation (Field, Fieldset, Inner
Fieldsets, JsonFieldset, HtmlQuotes), ORM (Connection, Scheme,
ActiveRecord, DataMapper, IdentityMap, QueryBuilder, InsertBuilder,
QueryResult, etc), Http, Web, WebStorage, etc.



Модули:

evas-php/evas-base — Базовый модуль (App, SingletonInstance, PhpHelper, App трейты и другие хелперы)

evas-php/evas-loader — Автозагрузчик

evas-php/evas-di — DI контейнер на магии

evas-php/evas-validate — Валидация полей, набора полей, вложенных наборов полей, json наборов полей, экранирование html

evas-php/evas-router — Маршрутизатор (По конфигу и авто)

evas-php/evas-orm — ORM (ActiveRecord, DataMapper, Builders, Results, IdentityMap, Scheme)

evas-php/evas-http — http-модуль (Request, Response, Headers)

evas-php/evas-web — Веб-приложение

evas-php/evas-web-store — Cookie и Session для веб

evas-php/evas-redis — Обертка для Redis

evas-php/evas-mongo — Обертка для MongoDB

evas-php/evas-server — Веб-сервер

evas-php/evas-server-ws — WebSockets-сервер

evas-php/evas-tests — Тесты модулей

evas-php/evas-examples — Примеры использования




Прошлогодняя дорелизная версия используется во многих заказных и моих проектах, а
также во второй версии сервиса Деловая сфера (работал там в 2018,
команде понравилось, решили использовать вместо Yii2, за 4 дня
развернули и перенесли бекенд с Yii2 на Evas)



P.s. Тут
скорее не убийца других фреймворков, а фреймворк, занимающий
промежуточную нишу
, которую ещё не заняли. У него есть несколько весомых
преимуществ как раз таки за счет его модульности и гибкой настройки +
нет жестких рамок и ограничений, можно выбирать, например:

- валидация хоть в моделях как в Yii2, хоть в запросах, хоть отдельно и без привязки к данным как в Laravel,

-
единый стиль доступа к request и response в обработчиках запросов, без
необходимости постоянно писать их в аргументах как в Laravel,

-
первый нормальный автороутер на php, который можно использовать вместе с
роутером на маппах, вместе с middleware, разделением на группы
маршрутов,

- трейты расширения классов (решает проблему наследования в ооп), ленивая загрузка,

- экранирование html в валидаторе или после получения записи на выбор,

- Прямые запросы, запросы через сборщики, ActiveRecord и DataMapper внутри одной ORM




P.s.s. Обладаю редким навыком: Разбираюсь во внутренностях фреймворков,
понимаю как, что и зачем устроено. Могу закостомайзить любой фреймворк
или сделать фреймворк/движок под нужды команды. Добавить любые нужные
фичи, расширить, ужать, переписать. Ну или предложить Evas PHP :)
5115128f30