Download the PHP package proklung/annotatedparamresolverbundle without Composer
On this page you can find all versions of the php package proklung/annotatedparamresolverbundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download proklung/annotatedparamresolverbundle
More information about proklung/annotatedparamresolverbundle
Files in proklung/annotatedparamresolverbundle
Package annotatedparamresolverbundle
Short Description Symfony bundle for transform parameters of request to DTO.
License MIT
Informations about the package annotatedparamresolverbundle
Бандл конвертации и валидации параметров контроллера через аннотации.
За основу взят https://github.com/piku235/JungiFrameworkExtraBundle и творчески доработан под личные нужды.
Например, кроме, DTO в виде stdClass поддерживаются SpatieDTO. Кое-что выпилено за ненадобностью (куки, заголовки и тому подобное).
Установка
composer require proklung/annotatedparamresolverbundle
Аннотации:
- RequestBody - Преобразует request body в аргумент контроллера (DTO).
- RequestParams - Преобразует POST параметры запроса в аргумент контроллера (DTO).
- QueryParams - Преобразует GET параметры запроса в аргумент контроллера (DTO).
Также поддерживаются аннотации PHP 8 (даже на версиях 7.2+). При использовании PHP 8 в дело пойдет нативный парсер аннотаций.
Общий принцип
RequestBodyConverted
- пользовательский класс, реализующий (использующий интерфейс в качестве метки)
Prokl\AnnotatedParamResolverBundle\ArgumentResolver\Contracts\UnserializableRequestInterface
.
В экземпляр этого класса после всех манипуляций лягут, в зависимости от аннотации, - GET, POST параметры запроса или сконвертированный request body.
Можно использовать [https://github.com/spatie/data-transfer-object](`Spatie DTO), отнаследовавшись от
DataTransferObject, и реализовав интерфейс
UnserializableRequestInterface`.
Так тоже можно (валидация по умолчанию включена):
Валидация
В описании класса, реализующего UnserializableRequestInterface
к свойствам класса допустимо
применять любые стандартные и кастомные валидаторы Symfony.
Опция validate в аннотации управляет валидацией, вне зависимости от аннотаций свойства класса.
All versions of annotatedparamresolverbundle with dependencies
symfony/dependency-injection Version ^4.4 || ^5.0
symfony/http-kernel Version ^4.4 || ^5.0
symfony/config Version ^4.4 || ^5.0
doctrine/annotations Version ^1.10
spatie/data-transfer-object Version ^2.8
symfony/framework-bundle Version ^4.4 || ^5.0
symfony/validator Version ^4.4 || ^5.0
symfony/serializer Version ^4.4 || ^5.0
symfony/property-access Version ^4.4 || ^5.0
proklung/base-exception Version ^1.0
spiral/attributes Version ^2.8