Как определить доступные параметры действия FOSRestController? - PullRequest
0 голосов
/ 20 декабря 2018

Я устанавливаю REST API с Symfony 3 и FOSRestBundle.

В процессе обработки исключений Doctrine / database (например, элементов, не найденных для запроса GET / article / {id} для примераили нарушения ограничений), я наткнулся на пример, который читается следующим образом:

<?php

namespace AppBundle\Controller;

use AppBundle\Exception\ResourceValidationException;
// …

class ArticleController extends FOSRestController
{
    /**
     * @Rest\Post("/articles")
     * @Rest\View(StatusCode = 201)
     * @ParamConverter("article", converter="fos_rest.request_body")
     */
    public function createAction(Article $article, ConstraintViolationList $violations)
    {
        if (count($violations)) {
            $message = 'The JSON sent contains invalid data. Here are the errors you need to correct: ';
            foreach ($violations as $violation) {
                $message .= sprintf("Field %s: %s ", $violation->getPropertyPath(), $violation->getMessage());
            }

            throw new ResourceValidationException($message);
        }

        // …
    }
}

Что мне не понятно, так это как автор узнает, что параметр ConstraintViolationList доступен в createAction ()?Какая магия связана с инъекциями $ article и $ нарушение?Я предполагаю, что вводится еще много параметров, как я могу сказать?

...