ajaxの時ってビューロジックをサーバ側に置く?クライアント側?
ざざっとメモ。
例えば Employee というモデルがあり、 salaly プロパティを持っているとする。
DBに保存されてるのかどっかのAPIから取得するのかなどは問わない。
<?php // こんな感じで社員オブジェクトが取れるとする $employee = Employee::find($employee_id); // で給料はこれで取れるとする echo $employee->salaly, PHP_EOL // 200000
で、まぁテンプレ側で給料を表示する場合は、カンマ区切りで表示したいとする。
テンプレート変数に上記の $employee がアサインされてるとすると、
<html> <body> <?php echo number_format($employee->salaly) ?> </body> </html>
こんな感じかな。
それでじゃあこの仕様には意味が無いけど、この給料を非同期でajaxを用いて表示したいとする。
ajaxのAPIを作ってそれをテンプレートから呼ぶことになると思うけど、
そのajaxのAPIの返却値である給料にはカンマを入れるべきだろうか?
めんどくさいのでRESTかつjsonで返すと仮定すると、
GET http://example.com/employee?employee_id=1
こんな風に呼び出たら、
{ salaly: 200000 }
こう?それとも
{ salaly: 200,000 }
こう?
前者ならjs側でnumber_format相当のものを実装しないといけないし、
後者ならビューに特化しすぎてるので、そのテンプレートだけに特化したものになりそう。
また前者の場合でかつajaxでないページもあった場合、
そちらはサーバ(php)側で処理するから
ビューロジックはサーバ側にもクライアント側にも置かなくてはいけないので
同じ言語で書いているならいいが、
そうでないならビューロジックの定義が重複してしまう。
といったところで悩んでいたりする今日この頃。