Рельсы "response_to" в PHP - PullRequest
       14

Рельсы "response_to" в PHP

0 голосов
/ 15 ноября 2009

В последнее время я пробовал Rails, и я полюбил response_to.

Возможно ли сделать что-то подобное в PHP ?, отвечая на различные типы запросов. Таким образом, легко реализовать альтернативный способ, даже если JavaScript отключен.

Ответы [ 2 ]

3 голосов
/ 15 ноября 2009

Вы можете отправить суффикс имени файла, как подсказывает Круле, но я считаю, что Rails определяет, какой тип контента выбрать, изучив значение заголовка HTTP Accept (см. Согласование содержимого в Википедии). В псевдокоде

$data = fetch_some_data();
switch (get_preferred_response_type($_SERVER['HTTP_ACCEPT'])) {
    case 'text/html':
       render_html($data); break;
    case 'application/xml':
       render_xml($data);
    case 'application/json':
       render_json($data);
    // etc...
}

Функция get_preferred_response_type() должна будет проанализировать заголовок Accept и вернуть предпочтительный тип MIME клиента. Здесь - пример такой функции, которая должна помочь вам начать работу; в противном случае есть библиотека согласования контента для PHP, которая сделает всю грязную работу за вас.

Надеюсь, это поможет!

2 голосов
/ 15 ноября 2009

В прошлый раз, когда я делал нечто подобное respond_to в Rails, я использовал Apache .htaccess RewriteRule для обработки переменных GET в php. Как то так:

RewriteEngine on
RewriteRule (\d*\.?\d*?).(html|json|xml|txt) /file.php?format=$1

Надеюсь, это поможет хоть немного. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...