Controller_Restは、Responseをxml・json・csvなど、色々なフォーマットに変換してくれて便利なんだけど、開発するにあたって許可しないフォーマットでは変換させたくない場合があると思うので、その場合の対処法。
Controller_Restクラスを継承したサブクラスを作成して、その中で$_supported_formatsをオーバーライドするだけ。
こんな感じに↓
class Controller_Api extends Controller_Rest { /** * アプリケーション内で利用できるフォーマットを再定義する * ex) json,jsonp以外は許可しない場合 * * @var array List all supported methods * @see Controller_Rest::$_supported_formats */ protected $_supported_formats = array( // 'xml' => 'application/xml', // 'rawxml' => 'application/xml', 'json' => 'application/json' , 'jsonp' => 'text/javascript' , // 'serialized' => 'application/vnd.php.serialized', // 'php' => 'text/plain', // 'html' => 'text/html', // 'csv' => 'application/csv', ); }
これで許容したフォーマット以外では出力しないようになる。