ОБСУЖДЕНИЕ

Hill php

3 сообщений0 просмотровОткрыта
#1
Всем привет :-)

Решил вспомнить молодость и старый добрый php. Появилось немного свободного времени и захотелось что-то интересное написать.

Если кто знаком с NestJS, то попытался реализовать примерно похожее.

Возможно кто-то захочет законтрибьютиться, пишите ;-)

https://github.com/zbzalex/hill-php
#2
Очень важная часть концепции самого микрофреймворка это прозрачность зависимостей, простота в организации.
Вам не нужно писать кучу провайдеров, создавать и понимать контейнеры и т.д
#3
Синопсис:

Модули
Модули могут:
- импортировать другие модули
- экспортировать провайдеры (сервисы)
- описывать свои контроллеры
- описывать свои провайера

Контроллеры
Контроллеры могут:
- иметь свой базовый путь
- инжектить любые зависимости контейнера
- описывать роутинг вместе с гуардами и пайпами

Провайдеры
Провайдерами могут быть классы, который наследуются от HillIInjectable. Другими словами, наследуя этот интерфейс, мы позволяем контейнеру, управлять этим классом.
Провайдеры могут:
- инжектиться в классы, которые так же управляемы контейнером
- инжектиться в контроллеры

Гуарды
Гуарды - это мидлвэры/фильтры, но только там, где нужно, т.е могут быть применены для определенного роута.
Гуарды могут:
- инжектить любые зависимости из контейнера
* не нужно помечать как управляемые

Пайпы
Пайпы - это валидаторы для определенного роута (трансформеры другими словами). Используются когда нужно отфильтровать данные перед тем как они будут получены.
Могут все тоже что и гуарды.