Ja u siebie mam to rozwiazane tak.
Calym requestem (http) zajmuje sie klasa wlasnie HttpRequest, to ona zarzadza danymi $_POST, $_GET itp. Do tego jest klasa Validation (czy jakokolwiek chcesz to nazwac) o interfejscie zblizonym do:
<?php
public static function hasMinimalLenght
($iLenght, $sValue) public static function hasMaximalLenght
($iLenght, $sValue) public static function hasOnlyPermittedCharakters
($sCharakters, $sValue) public static function hasNonPermittedCharakters
($sCharakters, $sValue) public static function isLesThan
($iLess, $iValue, $bEqualOrLess = false) public static function isMoreThan
($iMore, $iValue, $bEqualOrLess = false) public static function isEqualTo
($iEqual, $iValue) public static function isNotEqualTo
($sEqual, $iValue) public static function mustMatchRegexp
($sRegexp, $sValue) public static function mustNotMatchRegexp
($sRegexp, $sValue) ?>
Kiedy kieruje formularz do odpowiedniego kontrollera i akcji, ta pyta sie request o dane a pozniej przepuszcza to przez funckje walidacyjne. Rozwiazanie to jest bardzo proste i prymitywne, ale zarazem dziala poprawnie. Klase taka mozna dowolnie rozbudowywac, dodac do niej jakies lancuchy tych ograniczen, pozniej tylko podac parametry i zeby sie wszystko samo zrobilo. Ogolnie koncepcja taka zeby wykonac klase odpowiedzialna za walidacje danych.
W ksiazce PHP5 Zaawansowane Programowanie spotkalem sie tez z pomyslem umieszczenia walidacji w samej klasie Requesta. Jakos pomysl mi nie przypadl do gustu, wystarczy mi ze Request serwuje mi dane zaciapkowane (miedzy '), z obcietymi znakami html badz zamienionymi na ASCII.