Lately I have been trying out Rails, and I came to love the respond_to.
Is it possible to do something like this in PHP?, responding to different types of requests. So it is easy to implement an alternate way even if javascript is disabled.
Lately I have been trying out Rails, and I came to love the respond_to.
Is it possible to do something like this in PHP?, responding to different types of requests. So it is easy to implement an alternate way even if javascript is disabled.
You can dispatch on the filename suffix as Krule suggests, but I believe Rails determines which content type to choose by examining the value of the HTTP Accept
header (see Content negotiation on Wikipedia). In pseudo-code
$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...
}
The get_preferred_response_type()
function will have to parse the Accept
header and return the client's preferred MIME type. Here is an example of such a function which should help you get started; otherwise there is a content negotiation library for PHP which does all the dirty work for you.
Hope this helps!