memocon プログラミングのメモや物欲日記、雑記等

FuelPHP:Rest_Controllerの拡張子を省略した時のフォーマットを変更する

2012年07月12日 02時00分

FuelPHPには強力なWebAPI開発用(?)のコントローラーが備わっていると本や勉強会で知りそれならば使わない手はないと最初に手を出してみたのがRest_Controller。
これはWebAPIなどでjsonやxml、csv等を返すサービスを作る場合にとても便利な機能が満載なのだ。

documentや参考書籍を片目にどうにか希望通りの形までもっていけた。

しかしそこで気になったのがURLの拡張子を省略した時に返却されるフォーマットがxmlだったこと。

拡張子を省略した時の形式をjsonにしたかったので調べてみたらfuel/core/config/rest.phpにdefault_formatなるまんまなものがあったのでfuel/app/config/rest.phpにコピーして値をxmlからjsonに変更してみた。

fuel/app/config/rest.php

しかしこれだけでは不十分で同じrest.phpファイル内にあるignore_http_acceptがデフォルトのfalseの場合、
HTTPヘッダ情報のHTTP_ACCEPTに含まれるmimeタイプがRest_Controllerの$_supported_formatsの中に存在するとdefault_formatより優先されてしまう。
$_supported_formatsをjsonのみにした場合は問題ないがxmlもサポートして拡張子を省略した場合はjson形式に固定して返却したければこの値をtrueにする。

fuel/app/config/rest.php

Bluetoothスピーカー GENEVA XSを購入した

2012年07月09日 00時03分

画像の右上の赤いやつ。

今回話題にするGENEVA XSというスピーカー。

この商品を買うまではスピーカーは全てスピーカーケーブルで接続するタイプのスピーカーばかり使用していた。

しかしBluetooth接続が可能なこの機種を手に入れてからは無線の有用性に感動してばかりだ。

何しろここ3年ぐらいで手に入れた機器(iMac、Mac book air、iPhone、iPad)全てにBlue toothが備わっている。
これら全ての音の出力を面倒な配線無しでこのスピーカーから出せるのだ。
この感動は既に持っているBluetooth対応機種が多ければ多いほど恩恵を受けられるだろう。
※とは言ってもマルチベアリングには対応していない

数あるBlue tooth対応スピーカーの中でもこのGENEVA XSが他と比べて特化している部分はそのデザインと可搬性だろう。

スピーカー部分がケースと一体となっていてすぐに蓋を閉じればもう持ち運び可能な状態になる。
そして開いたら即スピーカーという訳だ。
勿論、バッテリー駆動も可能なので電源の心配は不要。

この可搬性は家の中でたとえばリビングにあるPCで音楽を再生しそれをキッチンで聴きながら料理をしたり、iPhoneのGarage Bandで作った曲をリハスタ等でバンドメンバーに直接聴かせる時など多様な場面で役に立つだろう。
iPhoneやiPadなどに付いてるオマケ程度のスピーカーとは流石に出力が違う。

しかしGENEVA XS自体も可搬性に特化したスピーカーなので音に過度な期待はしてはいけない。
あくまでサブでスポット的に使用したりする場合にその可搬性が大いに活躍してくれるだろう。

Bluetooth接続が可能でデザインもその可搬性を最大限に生かすように造られている。
コンセプトがハッキリとしていて潔い商品だ。

イデアインターナショナル:公式通販