2009-05-18
symfony勉強会/懇親会に参加してきました
5/15に開催されたsymfony勉強会/懇親会に参加してきました。会場を提供してくださった株式会社ディノさんいつもありがとうございます。
勉強会中の主なトピックスは1.2で変更された部分の話がやっぱり多かったですね。自分は1.2はJobeetでいじりながら、適当に遊んでるレベルなのでもっと使わないとなと身にしみました。あとsymfonyは今後、どのコンテンツも全てクラスベースの概念を使って拡張していく方針になるような気がするからOOPの理解が深めれるフレームワークとしてもウリになるかもしれないなとか感じました。
懇親会ではこんな感じの話題で盛り上がっていた記憶があります。
- sfFormは慣れれば便利
- メンテナンス性は疑問がある
- symfony1.2を実践投入しているところは少ない
- 最近デスマ
- それに付随してクライアントが云々
- 男の子牧場やろうよ!
- カヤックの名刺カッコイイ
かなり睡眠不足だったので、懇親会はちょっと早めに帰ったんですが帰り際にカタンネタで盛り上がってるのちらっと聞こえて、激しく気になりながら帰宅しました。
以下、勉強会中にメモったことをそのまま載せておきます。発表者の方がすでに資料公開してくださっているので各資料記事へのリンクも一緒に書いてます。
sfWebDebugToolbarを拡張してみる
sfWebDebugToolbarの内部
- Symfoniansおなじみのツール
- symfony1.2からそれぞれのパネルがクラス化
- sfWebDebugPanel
- 抽象クラス
- 基本これを継承して拡張
- 既存クラスを拡張するときは既存のクラスを拡張すればおk
- 抽象クラス
- sfWebDebugPanelTimer
- 処理時間を表示するパネル
- sfTimerManager
- sfTimerの管理用クラス
sfWebDebugToolbarの拡張方法
- 基本的なことはcook bookに
- 日本語訳もされてる
- sfEventDispatcherを使用
- カスタムメソッドを生成する
symfony1.2のイベントを使ってみた
- 発表資料
- brtRiverさん
- おやぢ組の人
symfonyの拡張
- Core部分を拡張
- これはやっちゃダメな例
- アップデート時に嵌る
symfonyの拡張方法
- Filter
- 自前クラス(factories.yml)
- Mixin( 1.0.X )
- Event( 1.1.X )
Event
- Mixinでやってたこと+αができるようなもの
- オブザーバーパターン
- PEARでいうEvent_Dispatcher
- sfEventDispatcherを通して
- イベント(sfEvent)を登録
- イベントのリスナー(connect)を登録
- イベントが呼ばれるとリスナーを実行する
Eventの種類
- Notify
- リスナーを順次実行
- NotifyUtil
- trueを返すまで実行
- Filter
- 指定フィルタを実行
拡張例
- 用意されているイベントを調べる
- リスナーを登録する (in configuration file)
- リスナーを実装
- sfEventがわたってきて、getSubjectして例外クラスを取得
- trueを返すとイベントが終わるのでreturn false
- フィルタの登録も可能
- Mixinのようにメソッドを追加することも可能
symfony2ではEventを多用
- RequestHandlerがフィルタにとって代わりそう
ルーティングを使ってシンプルなアプリケーション開発を
- 発表資料
- Ebiharaさん
レコード取得をアクションでやらない
- ObjectRouteを使う
- sfPropelRoute or sfDoctrineRoute
アクション名やバリデーション処理の共通化
- sfRouteCollectionを使う
- アクション内に書く絶対的なコード量は減らせる
- (個人的に)メンテしやすいかと言われると微妙な気もした
気づいたこと
sfMobileIPPlugin作った
- btoさん
sfMobilePPluginとは
IPアドレス帯の定義
- yamlファイルで定義
連続IPアドレス帯を結合
- CIDRでIPアドレス帯を表現
- 2進数で切りのいい範囲
32ビット整数で表現
- 比較するとき簡単なif文でできるのでこっちのが楽
IPアドレスをソート
- バイナリサーチ用
事前処理をキャッシュ
- symfonyの機能使って
理論ベンチ
- 逐次検索150回に対して
- MobilePPluginは6回
- log2(50)
トラックバック - http://d.hatena.ne.jp/Kiske/20090518/1242624004
リンク元
- 67 http://www.google.co.jp/search?q=absolute+playing&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 10 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&q=MySQL パフォーマンス&btnG=検索&lr=lang_ja
- 8 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4DBJP_jaJP249JP250&q=Ajax.Updater+firefox
- 6 http://events.php.gr.jp/events/show/78
- 3 http://reader.livedoor.com/reader/
- 3 http://www.google.co.jp/hws/search?hl=ja&q=MySQL+チューニング&client=fenrir&channel=&adsafe=off&safe=off&lr=lang_ja
- 3 http://www.google.co.jp/search?hl=ja&q=MySQL+チューニング&btnG=Google+検索&lr=&aq=f&oq=
- 3 http://www.google.co.jp/search?q=imagick&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox
- 3 http://www.google.co.jp/search?q=mysql+パフォーマンス&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 3 http://www.google.co.jp/search?q=vimperator+拡張ヒント&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a


