Seagull - Получение переменных запроса
Seagull поощряет разработчиков добросовестно управлять получением запрашиваемых переменных.
Все данные, введённые пользователем - будут ассоциированы с объектом $input.
Безусловно - введённые данные необходимо подвергнуть валидации. Функция валидации validate() имеет два аргумента - the request object and the input object (т.е. объект запроса и объект ввода), которые передаются в функцию. И таким образом можно сразу же проверить наличие запрашиваемых переменных и ассоциировать их с объектом ввода ($input object), и после этого введённые значения будут доступны на протяжении всего того времени, пока это будет нужно фреймворку.
- Request object - это инкапсуляция данных ассоциативного массива $_REQUEST. Напомню, $_REQUEST содержит данные HTTP-запроса - то есть данные переменных $_GET, $_POST и $_COOKIE
- Input object служит для регистрации данных и ресурсов, которые работают в режиме запрос/ответ (request/response cycle).
- Вы поставляете объект ввода в свои action methods (методы, осуществляющие действия), которые, после обработки и осуществления действий, выполняемых соответствующим методом, ассоциируются с объектом вывода (output object).
Вобщем - всё работает очень просто. Данные собираются из запроса, и после проверки валидации отправляются в action methods, инициализируясь через параметр action в запросе. Если валидация не проходит - другими словами, если свойство $validated устанавливается в FALSE, тогда App Controller отправляет данные запроса прямо в функцию display, игнорируя всё остальное.
Это и побудило нас написать функцию валидации данным образом:
function validate($req, &$input)
{
$this->validated = true;
$input->action = $req->get('action');
}
function validate($req, &$input)
{
$this->validated = true;
$input->action = $req->get('action');
}Ёж


