社会人でJavaエンジニアをしているけれど、php5のオープンソースでフレームワークのfuelPHPに首を絞められている

fuelPHPを使ってみてわかったこと


・PHP5対応
PHP4は未対応。スクリプト言語なのでコンパイル要らずで早いが、コンパイルすることで得られるメリット(メソッドチェーンなど)が享受できないけど、あまり問題なかったです。


・HMVCパターン
感覚的にはJavaとあまり違いがない気がします。
正直、PHPフレームワークがここまで進化しているとは思わなかったです。


・テンプレートエンジンが使える
JavaのVelocity的なことができました。
PHPだとSmartyやTwigが一般的なのかな。


・Controllerクラスをオーバーライドしたクラスを作れる
beforeメソッドでセッションチェックの仕組みを入れることができました。

class Controller extends Controller {
before(){
セッション処理
return parent::before();
}
}


・Controller_Restクラスで出力をさらりと変えられる
Controller_Restクラスを継承して配列出力とかにしておくと、URLの末尾に拡張子を付けるだけで、json/jsonp/xml/csvなどの対応しているフォーマットに簡単に変えられます。
セッション処理もControllerクラスを継承しているController_Restクラスに入れるといいかもしれないです。


・例外処理が楽
projectname/public/index.phpが全てを統括している(全てのアクションがここを通過する)ので、全ての例外をindex.phpでCatchできます。
心配性な細かい男に「そういえば、例外処理どうなってるの?大丈夫?」と聞かれた時「全部index.phpでcatchしてるんで大丈夫ですが、何か問題でも?」と言えちゃいます。言ってみたい。


・404エラーページ作成が楽
routes.phpで「404->err.php」みたいな書き方ができます。


・oilコマンドが豊富
scaffold(スキャフォールド)で一連のCRUD画面が作成できるだけでなく、modelだけ、controllerだけの作成ができます。
modelを作成するだけでDBへ勝手にcreate文を流してくれます。
困ったらoilコマンド(projectname/oil)を書き換えてしまえばなんとかなりそうな雰囲気があります。


・セキュリティを気にしないでもいい
設定にセキュリティ項目があるので、そこを気をつければあとは気にしないでも大丈夫そうでした。
CSRF対策(クロスサイトリクエストフォージェリ)でトークン設定ができますが、fuelphp標準のトークンだと推測されやすいようなので変更する必要があります。


最初は訳がわからないけど、わかってくるとスッキリしている構造なので、どこに何があるのか理解しやすくて楽しくなってきたのも良かったです。