proklung / bitrixannotatedresolversbundle
Addon for Symfony bundle for transform parameters of request to DTO. Bitrix specify part
Package info
github.com/ProklUng/BitrixAnnotatedResolversBundle
Type:symfony-bundle
pkg:composer/proklung/bitrixannotatedresolversbundle
1.0.9
2021-08-14 11:45 UTC
Requires
- php: >=7.3 || ~8.0
- doctrine/annotations: ^1.10
- doctrine/cache: ^1.10
- proklung/base-exception: ^1.0
- symfony/config: ^4.4 || ^5.0
- symfony/dependency-injection: ^4.4 || ^5.0
- symfony/framework-bundle: ^4.4 || ^5.0
- symfony/http-kernel: ^4.4 || ^5.0
Requires (Dev)
- proklung/phpunit-testing-tools: ^1.0
- symfony/serializer: ^4.4 || ^5.0
README
Конверторы для бандла https://github.com/ProklUng/AnnotatedParamResolverBundle, без него он не имеет смысла, да и не запустится:
- BitrixFile
В action контроллера, при запросе вида /route?file=7; где 7 - битриксовый ID файла, будет лежать массив, идентичный тому, что отдает CFile::GetFileArray.
use Prokl\BitrixAnnotatedResolversBundle\Annotation\BitrixFile; use Prokl\BitrixAnnotatedResolversBundle\ArgumentsResolver\Services\BitrixFileParam; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; class SampleControllerBitrixFile extends AbstractController { /** * Параметры аннотации необязательны! * * @param BitrixFileParam $file * @return JsonResponse $content * @BitrixFile( * var="file" * ) */ public function action( BitrixFileParam $file ): JsonResponse { return new JsonResponse([ 'url' => $file->url() ]); } }
- BitrixFileUrl
В action контроллера будет лежать URL файла при запросе вида /route?file=7. Где 7 - битриксовый ID файла.
use Prokl\BitrixAnnotatedResolversBundle\Annotation\BitrixFileUrl; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; class SampleControllerBitrixFileUrl extends AbstractController { /** * Параметры аннотации необязательны! * * @param string $file * @return JsonResponse $content * @BitrixFileUrl( * var="file" * ) */ public function action( string $file ): JsonResponse { return new JsonResponse([ 'url' => $file ]); } }