YiiやKohanaなどの既存のRESTfulPHPMVCフレームワークを使用できます。どちらも非常に軽量で、RESTfulアプリケーションをネイティブにサポートしています。
既存のアプリケーションの場合、MVCモデルでは、すべての要求とロジック処理はビューではなくコントローラーによって実行される必要があると規定されています。物事は通常、ここでは2つの方法のいずれかで行われます。
(1)コントローラーには、各タイプの要求に応答するための特別なメソッドがあり、RubyOnRailsに見られるように(主に各コントローラーアクションの最後に)異なる動作をします。
respond_to do |format|
format.html
format.xml { render :xml => @events}
format.json { render :json => @events}
end
(2)コントローラーは、現在要求されている形式を検出し、そのテーマ/レイアウト全体を、たとえばJSONテーマに変更します(すべてのレイアウト/ビューは同じデータを受け取ります)。これは私の現在の実装であり、次のようになります。
$format is any of [html,json,xml] (detected from url suffix)
$controller->layout = "$format";
$controller->render($viewFile, $object);
HTMLレイアウトでファイルを表示
<div id='model>
<h1><?=$object->title?></h1>
<p><?=$object->description?></p>
</div>
JSONレイアウトでファイルを表示
echo json_encode($object);
XMLレイアウトでファイルを表示
/** Loop and build XML tree */