Валидация параметров запроса
За работу с входящими параметрами отвечает компонент Input, получить объект которого можно посредством вызова
метода приложения bff::input(), в контексте модулей и дополнений также доступен вариант $this->input->
Компонент работает со всеми основными методами запроса: GET, POST, COOKIE, SERVER, и предоставляет соответствующие методы доступа к данным:
    $this->input->get('name');
    $this->input->post('name');
    $this->input->cookie('name');
    $this->input->server('name');
Дополнительно есть возможность указать смешанный вариант:
    // получаем данные из GET запроса, если не нашли пробуем POST
    $this->input->getpost('name');
    // наоборот
    $this->input->postget('name');
Вторым параметром в данных методах указывается тип преобразования данных:
    // Значение будет приведено к беззнаковому целому числу
    $id = $this->input->get('id', TYPE_UINT);
    // boolean
    $active = $this->input->get('active', TYPE_BOOL);
    // string
    $string = $this->input->get('name', TYPE_STR);
Доступны следующие типы преобразования:
- 
TYPE_NOCLEAN- без изменений
- 
TYPE_BOOL- boolean (true/false)
- 
TYPE_INT- integer (целое число)
- 
TYPE_UINT- unsigned integer (беззнаковое целое число)
- 
TYPE_NUM- number (число с плавающей точкой, float/double)
- 
TYPE_UNUM- unsigned number (беззнаковое число с плавающей точкой)
- 
TYPE_UNIXTIME- unix datestamp (unsigned integer) (дата в Unix формате)
- 
TYPE_STR- trimmed string (строка без пробелов в начале и конце)
- 
TYPE_NOTRIM- string - no trim (строка с допустимыми пробелами в начале и конце)
- 
TYPE_NOHTML- trimmed string (строка обработанная htmlspecialchars)
- 
TYPE_ARRAY- array (массив)
- 
TYPE_BINARY- binary string (бинарная строка, например содержимое бинарного файла)
- 
TYPE_NOHTMLCOND- trimmed string with HTML made safe if determined to be unsafe
- 
TYPE_NOTAGS- trimmed string, stripped tags (строка обработанная strip_tags)
- 
TYPE_DATE- date (текстовое представление даты)
- 
TYPE_PRICE- price (цена с приведением к виду 0.5)
- 
TYPE_TEXT- plain text (безопасная строка обработанная strip_tags с поддержкой активных ссылок)
- 
TYPE_JSON- json (массив на основе JSON строки)
- 
TYPE_PASS- password (парольная фраза с допустимыми пробелами в начале и конце)
Также возможно приведение данных к массиву определенного типа, для этого используйте:
- 
TYPE_ARRAY_BOOL
- 
TYPE_ARRAY_INT
- 
TYPE_ARRAY_UINT
- 
TYPE_ARRAY_NUM
- 
TYPE_ARRAY_UNUM
- 
TYPE_ARRAY_UNIXTIME
- 
TYPE_ARRAY_STR
- 
TYPE_ARRAY_NOTRIM
- 
TYPE_ARRAY_NOHTML
- 
TYPE_ARRAY_ARRAY
- 
TYPE_ARRAY_BINARY
- 
TYPE_ARRAY_NOHTMLCOND
- 
TYPE_ARRAY_NOTAGS
- 
TYPE_ARRAY_DATE
- 
TYPE_ARRAY_PRICE
- 
TYPE_ARRAY_TEXT
Также есть удобные методы проверки на соответствие заданному формату:
    $email = $this->input->get('email');
    if ( ! $this->input->isEmail($email)) {
        $this->errors->set(_t('users', 'Email адрес был указан некорректно'));
    }
Проверка номер телефона:
    $phone = $this->input->get('phone');
    if ( ! $this->input->isPhoneNumber($phone)) {
        $this->errors->set(_t('users', 'Номер телефона был указан некорректно'));
    }