Berry Framework

Фреймворк, в который собраны функции использованные в различных проектах. В том числе: ORM, шаблонизатор и ряд других полезных в хозяйстве вещей.

Скачать
trunk-версия (650 КБ)
Наверх

Request

Класс-помощьник по работе с активным запросом.

Методы

request::POST()

Получает и проверяет POST-данные. В случае неудачи или если данных нет, бросает Check_Except.

Пример

try {
    $rules = array(
        'a' => array('int(1, 5)', 'Жажду числа от 1 до 5.')
    );

    $request = request::POST();

    // или
    $request = request::POST('key.subkey');

    // или
    $request = request::POST($rules);

    // или
    $request = request::POST('key.subkey', $rules);
} catch (Check_Except $e){
}

request::FILES()

То же самое, что request::POST() только для переменной $_FILES. Плюс возвращает массив файлов в более удобном виде.

Пример

try {
    print_r($_FILES);

    /* Array
    (
        [file] => Array
            (
                [name] => Array
                    (
                        [0] => text1.txt
                        [1] => text2.txt
                    )

                [type] => Array
                    (
                        [0] => application/octet-stream
                        [1] => application/octet-stream
                    )

                [tmp_name] => Array
                    (
                        [0] => ...
                        [1] => ...
                    )

                [error] => Array
                    (
                        [0] => 0
                        [1] => 0
                    )

                [size] => Array
                    (
                        [0] => 96
                        [1] => 247
                    )

            )

    ) */

    print_r(request::FILES());

    /* Array
    (
        [file] => Array
            (
                [0] => Array
                    (
                        [name] => test1.txt
                        [type] => application/octet-stream
                        [tmp_name] => ...
                        [error] => 0
                        [size] => 96
                    )

                [1] => Array
                    (
                        [name] => test2.txt
                        [type] => application/octet-stream
                        [tmp_name] => ...
                        [error] => 0
                        [size] => 247
                    )

            )

    ) */
} catch (Check_Except $e){
}

request::GET()

То же самое, что request::POST() только для GET.

request::PUT()

То же самое, что request::POST() только для PUT.

Обратите внимание: Метод подставляет переменную $_PUT в $GLOBALS. Не обращайтесь к ней напрямую.

request::DELETE()

То же самое, что request::POST() только для DELETE.

Обратите внимание: Метод подставляет переменную $_DELETE в $GLOBALS. Не обращайтесь к ней напрямую.

request::cookie()

Устанавливает и получает печеньки.

Пример

request::cookie('test1', 'Ставим 1');
request::cookie('test2', 'Ставим 2', '+3 hours');

// Ставим 1
print_r(request::cookie('test1'));

request::redirect()

Редирект на внутреннюю страницу сайта или стороннюю ссылку.

Пример

// в корень
request::redirect('/');

// на to/path относительно текущей страницы
request::redirect('to/path');

request::status()

Шлёт заголовок.

Пример

// HTTP/1.1 200 OK
request::status(200);

// HTTP/1.1 404 Not Found
request::status(404);

request::method()

Получает метод запроса: GET, POST, PUT, DELETE и т.д.

request::client_ip()

Получает IP пользователя.

request::headers()

Получает HTTP-заголовки.

request::user_agent()

Получает строку браузера пользователя.

Пример

// Opera/9.80 (Windows NT 6.1; U; ru) Presto/2.8.131 Version/11.11
print_r(request::user_agent());

// используется Browser Capabilities Project
print_r(request::user_agent(true));

/* Array
(
    [parent] => Opera 11.00
    [browser] => Opera
    [version] => 11.00
    [majorver] => 11
    [minorver] => 00
    [win32] => true
    [frames] => true
    [iframes] => true
    [tables] => true
    [cookies] => true
    [javascript] => true
    [javaapplets] => true
    [cssversion] => 3
    [browser_name_regex] => ^Opera/9\.80.*\(.*Windows NT 6\.1.*\).*Version/11\..*$
    [browser_name_pattern] => Opera/9.80*(*Windows NT 6.1*)*Version/11.*
    [platform] => Win7
) */

request::accept()

Проверяет поддержку браузером типа данных.

Пример

// true
print_r(request::accept('text/plain'));

print_r(request::accept());

/* Array
(
    [image/jpeg] => Array
        (
            [q] => 1
        )

    [image/gif] => Array
        (
            [q] => 1
        )

    [image/x-xbitmap] => Array
        (
            [q] => 1
        )

    [text/html] => Array
        (
            [q] => 1
        )

    [image/webp] => Array
        (
            [q] => 1
        )

    [image/png] => Array
        (
            [q] => 1
        )

    [application/xhtml+xml] => Array
        (
            [q] => 1
        )

    [application/xml] => Array
        (
            [q] => 0.9
        )

    [*/*] => Array
        (
            [q] => 0.1
        )

) */

request::accept_language()

То же самое, что request::accept() только для языков.

request::accept_encoding()

То же самое, что request::accept() только для методов сжатия.

request::is_ajax()

Проверяет вызван ли запрос XMLHttpRequest.