symfony勉強会レポート
本日、symfony勉強会/懇親会に参加してきました。
symfony勉強会/懇親会 - events.php.gr.jp
ブログに書くまでが勉強会らしいので、お酒で頭が働かない中、頑張って更新します。
1. sfWebDebugToolBarを拡張してみる (id:Fivestarさん)
sfWebDebugToolberの内部
1.2で変わったこと
- それぞれのパネルがクラス化した。
- よって、拡張が容易になった。
拡張の仕方
- sfWebDebugPanelクラス(アブストラクト)を継承することで拡張。
- 実装しなければならないメソッドは、以下。
- getTitle()
- getPanelContents()
- getPanelTitle()
sfWebDebugPanelTimer
処理にかかった時間を計測して表示。
- sfWebManager::getTimer($name)で、計測を開始し、sfTimer::addTime()でgetTimerからの時間を取得する。
- 任意の箇所に、それらを置けばOK
2. symfony1.2のイベントを使ってみた (id:brtRiverさん)
Event
フレームワーク以上のことをやろうとすると、コアをいじりたくなるが、それは良くない。
今までも、コアの拡張のためのものはあった。
-
- フィルター(filters.ymlに追加)
- 自前クラス(factories.ymlに追加)
- Mixin(1.0.x)
- Event (1.1.x〜)
Mixin
- 多重継承っぽい拡張が出来る。
- マジックメソッドを使ってる。
レコード取得をアクション側で行わないようにする。
- ルーティングの段階で行う。
- preExecute()で、それをプロパティに入れると楽出きるかも。
- バリデーションの処理は、sfRouteCollectionで共通化。
LT.sfMobileIPPlugin作った (id:botさん)
sfMobileIpPluginとは
- IPアドレスから形態キャリアを判定
- 連続IPアドレス体を結合
- 32ビット整数で表示。
- 比較を単純なif文で出きるようになる。
- IPアドレスは、ymlファイルで指定。
- 開発機などのIPを携帯用IPとして登録出来て、開発に便利!
最初、始まる5分前まで5人しかいなかった時はどうしようかと思いましたが、おもしろい内容の勉強会でした。
フレームワークは、自作するのが好きなんですが、3つの発表全てが参考になりました。特に、3番目のルーティングの部分は、自作フレームワークでやろうと思っていた事なので、是非参考にしてみたいと思います。
また、sfMobileIPPluginは、32バイト整数に変換する所とか、開発の事も考えた機能がとてもいい感じでした。
懇親会もすごく楽しかったので、また次も参加して行きたいと思います。