Не хочу учиться писать говнокод, так что хочу научиться верно валидировать запросы php.
Первое что пришло на ум (код в контроллере):
//В начале контролера прописывается правило, которое описывает какие данные нужно ожидать и в каком виде (integer string...)
//Длинное название, лишь чтоб вы поняли что она делает. Остальные переменные не попадут в контейнер
Client::waitRequestByRule(
'POST' => array('somefield' => 'rules'),
'GET' => array('somefield' => 'rules')
); //При успешной проверке, из данных переменных будет создан контейнер
//Проверка. Получен ли запрос, соответствующий правилам
if(Cliend::requestValid()) {
$data = Client::getRequestContainer() // Получение контейнера валидированых данных
}
Второй вариант - формировать общий массив данных из $_FILES,_POST,_GET,_COOKIE
И при обработке этих данных, валидировать, выдавая пользователю ошибки если таковы будут.
$data = Client::request();
$somefield = $data['GET']['somefield'];
if(Data::validate($somefield, 'rule')) return true;
Как правильнее. И насколько плох первый вариант?