Проверка данных POST без модели в Silex/Symfony 2?

Я создаю приложение RESTful, которое будет обслуживать только данные json/xml, и я выбрал Silex, потому что я уже немного (знаю )Symfony 2 и потому что он маленький, мне не нужен Twig и т. д.

Здесь нет моделей, просто старые SQL-запросы с использованием Doctrine dbal и сериализатора. В любом случае, я должен проверять запросы POST/PUT. Как это можно сделать без использования компонента формы и моделей?

Я имею в виду, что данные POST представляют собой массив. Могу ли я проверить это (, добавив ограничения )и как?

РЕДАКТИРОВАТЬ:Хорошо, прямо сейчас я нашел интересную библиотеку, то есть уважение/валидацию . Он также использует ограничения sf, если это необходимо. У меня получилось что-то вроде этого (ранний код :P ), который я буду использовать, если не будет ничего лучше:

$v = $app['validation.respect'];

$userConstraints = array(
    'last'     => $v::noWhitespace()->length(null, 255),
    'email'    => $v::email()->length(null, 255),
    'mobile'   => $v::regex('/^\+\d+$/'),
    'birthday' => $v::date('d-m-Y')->max(date('d-m-Y')),
);

// Generic function for request keys intersection
$converter = function(array $input, array $allowed)
{
    return array_intersect_key($input, array_flip($allowed));
};

// Convert POST params into an assoc. array where keys are only those allowed
$userConverter = function($fields, Request $request) use($converter) {

    $allowed = array('last', 'email', 'mobile', 'birthday');

    return $converter($request->request->all(), $allowed);
};

// Controller
$app->match('/user', function(Application $app, array $fields)
    use($userConstraints) {

    $results = array();

    foreach($fields as $key => $value)
        $results[] = $userConstraints[$key]->validate($value);

})->convert('fields', $userConverter);

6
задан Carlos Granados 19 September 2012 в 16:07
поделиться