「はじめてのフレームワークとしてのFuelPHP」を献本頂いた

はじめてのフレームワークとしてのFuelPHP

原稿レビューに参加させていただいたので一言二言感じた事を記事に残しておこうと思います。
ちなみに私がこういったレビューに参加するのは今回が初めてです。

去年末くらいから注目されてきている新フレームワークFuelPHP
PHPの主要フレームワークのトレンドを見ると、codeigniterとFuelPHPが上昇傾向にありことがわかります。
またグラフをみての通り、FuelPHPはとても新しい物だと分かります。

では本題。

本書をレビューから関わってきて感じた感想など

  • レビュー参加者がとても活発にレビューされていて短時間でかなり磨かれた
  • レビュー参加者用のツールがFuelPHPで作られたもので著者のFuelPHPへの熱い思いを感じた
  • 出版ギリギリまでFuelPHP1.2の情報を追い続けていて最新な情報が満載
  • win / mac / linux の環境構築方法が載っていて読者のOSに影響されないように工夫されている
  • サポートコミュニティが用意されていて『はじめて』の人でも安心な体制が用意されている
  • サンプルコードがgithubにあってFuelPHPと同じMITライセンスで扱いやすい
  • 著者はPHP5技術者認定上級試験の認定者でサンプルコードの質が高い

電子書籍を買ったことが無いのですが便利そうですね

  • 万が一誤字などがあっても都度バージョンアップされていく ( var 0.9 => var 0.9.1)
  • かさばらない
  • 無くさない

本を出すってとても労力がいる事なんだと思いました。
今回の出版でFuelPHPの認知度アップと普及率アップに繋がれば嬉しいですね。
FuelPHPに興味が湧いてきたPHPerの方は、これを機に買ってみては如何でしょうか。

FuelPHP1.2のSessionでハマった

どうやら原因は他の所にあった感じなので、この記事を参考にしないでください。

Session::keep_flash()  

上記を使用してもset_flashしたものが維持されないまま削除されてしまう問題に当たった。

原因は、config.phpのprofiling => trueだった。

プロファイリングを使用するとDBクエリや実行時間など色々な情報を出力してくれるが、
これが原因でセッションのインスタンスが複数生成されてしまい、
keep_flashを設定しても有効に削除されてしまう。

だから、keep_flash()の検証をする際は、profiling => falseでね。

configs/session.phpのflash_auto_expireをfalseにすると勝手に消えなくなるが、根本原因は先程のべたほう。

ついでに、fuelphpのsession周りのソースを読んだのでメモっとく。

set_flashをすると、stateがnewでSessionクラスのプロパティに保持される。
get_flashをすると、Sessionクラスのプロパティから読み込んで、stateをoldにする。(flashは一度きりだから)
keep_flashをすると、stateをnewに戻す。

最後に実際にSessionに書き込むときに、クリーンナップが実行され、stateがoldのデータをunsetする。

flash_auto_expireを実行すると、インスタンス生成時にoldを削除する。