Переход от аннотаций PHP nelmio/api-doc-bundle к атрибутам с помощью RectorPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Переход от аннотаций PHP nelmio/api-doc-bundle к атрибутам с помощью Rector

Сообщение Anonymous »

Я работаю над проектом Symfony REST API и пытаюсь обновить инфраструктуру и все мои зависимости до последней версии. Недавно я перешел на PHP 8.3 и пытаюсь использовать новые атрибуты PHP, чтобы заменить большинство аннотаций.
Rector помогает в этом, предоставляя некоторые предопределенные наборы (

Код: Выделить всё

DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES
, SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES). Однако все конечные точки моего API определены с использованием аннотаций nelmio/open-api-bundle, которые я хотел бы перенести в атрибуты.
Например, я хотел бы провести рефакторинг этого кода:

Код: Выделить всё

    /**
* @OA\Response(
*     response=200,
*     description="Returns paginated list of filtered users",
*     @OA\JsonContent(ref=@Model(type=UserListOutputModel::class))
* )
*
* @QueryParam(name="page", default=1, description="Page number")
* @QueryParam(name="itemsPerPage", default=10, description="Items per page")
* @QueryParam(name="username", requirements="[a-zA-Z0-9]+", description="The username")
*
* @Get("api/user", name="user_search", defaults={ "_format" = "json" })
*/
into this:

Код: Выделить всё

    #[OA\Response(
response: Response::HTTP_OK,
description: "Returns paginated list of filtered users",
content: new OA\JsonContent(ref: new Model(type: UserListOutputModel::class))
)]
#[QueryParam(name:"page", default:1, description:"Page number")]
#[QueryParam(name:"itemsPerPage", default:10, description:"Items per page")]
#[QueryParam(name:"username", requirements: "[a-zA-Z0-9]+", description:"Username to search")]
#[Get("api/user", name:"user_search", defaults:["_format" => "json"])]
Для справки: я следил за этим обсуждением на GitHub: https://github.com/zircote/swagger-php/issues/1047, где некоторые люди предлагают настраиваемые правила, но мне не удалось автоматизировать этот процесс.
Есть ли у кого-нибудь идеи, как это сделать (кроме вручную)? Любая помощь приветствуется

Подробнее здесь: https://stackoverflow.com/questions/780 ... ith-rector
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»