Laravelでアウトプットフィルター
タグ: Laravel3
セキュリティーの観点からLaravelのHTMLクラスとFormクラスの出力は、e()ヘルパーを通されています。
e()ヘルパーの実態は,PHPのhtmlentities()関数です。ですから、これらのクラスメソッドを通さずに、ユーザーの入力を出力する場合は、自分でe()を通してください。
さて、出力を古いガラゲーに送るためコード変換するとか、もっとセキュリティーを強化するためにフィルターに通したいと思っているのでしたら、afterフィルターを使いましょう。
afterフィルターは各ルートの定義時に指定できますし、コントローラに対するものは、コントローラークラス内で指定することもできます。
もし、全ルートを通る出力に対してフィルターを通したい場合は、routes.phpで定義します。例えば、出力中のLaravelをFuelPHPに変換したい場合は、次のようにします。
Route::filter('after',
function($response) {
if ( in_array($response->status(), array('200'))) {
$response->content = str_replace('Laravel', 'FuelPHP', $response->content);
}
});
これで、Laravelのデモを見ると、一気にFuelPHPのデモになります。 :D
Laravelのドキュメントを見ると、FuelPHPのドキュメントに見えます。 :D