В последнее время пишу на ларавеле, там есть удобная вещь - реквесты. В них отписываешь правила валидации в виде массива и инджектишь в нужный экшн нужного контроллера нужный реквест. Опять таки для генерации форм есть пакет laravelcollective/html, для верстки и фронтенд-валидации использую purecss