2009-05-15
symfony勉強会レポート
本日、symfony勉強会/懇親会に参加してきました。
symfony勉強会/懇親会 - events.php.gr.jp
ブログに書くまでが勉強会らしいので、お酒で頭が働かない中、頑張って更新します。
1. sfWebDebugToolBarを拡張してみる (id:Fivestarさん)
sfWebDebugToolberの内部
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
- 多重継承っぽい拡張が出来る。
- マジックメソッドを使ってる。
Event
symfonyのEventは、observerパターン。
以下のメソッドが定義
- Notify
- NotifyUntil
- Filter
symfony2
symfony2では、Eventが多用される。
3. ルーティングを使ってシンプルなアプリケーション開発を(id:co3kさん)
アクションを統一しよう
- アクションで、毎回リクエストのチェックを行うのは、良くない。
- 命名規則などが、同じプロジェクトで違うと意味分からない。
レコード取得をアクション側で行わないようにする。
- ルーティングの段階で行う。
- preExecute()で、それをプロパティに入れると楽出きるかも。
- バリデーションの処理は、sfRouteCollectionで共通化。
LT.sfMobileIPPlugin作った (id:botさん)
sfMobileIpPluginとは
最初、始まる5分前まで5人しかいなかった時はどうしようかと思いましたが、おもしろい内容の勉強会でした。
フレームワークは、自作するのが好きなんですが、3つの発表全てが参考になりました。特に、3番目のルーティングの部分は、自作フレームワークでやろうと思っていた事なので、是非参考にしてみたいと思います。
また、sfMobileIPPluginは、32バイト整数に変換する所とか、開発の事も考えた機能がとてもいい感じでした。
懇親会もすごく楽しかったので、また次も参加して行きたいと思います。
トラックバック - http://d.hatena.ne.jp/yokkuns/20090515/1242405477
リンク元
- 24 http://events.php.gr.jp/events/show/78
- 5 http://twitter.com/yokkuns
- 3 http://cybozu.opendoor.local/cgi-bin/cbag/ag.cgi?page=ReportView&rid=76682
- 3 http://events.php.gr.jp/events/show/78/
- 3 http://twitter.com/
- 3 http://www.google.co.jp/search?hl=ja&q=プロジェクト管理+linux&btnG=Google+検索&lr=&aq=f&oq=
- 2 http://ezsch.ezweb.ne.jp/search/ezGoogleMain.php?query=音域早見&ct=&pd=1&sr=0000
- 2 http://twitter.com/yokkuns?utm_medium=email&utm_source=follow&utm_campaign=twitter20080331162631
- 2 http://www.google.co.jp/reader/view/
- 2 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&newwindow=1&q=オープンソース+プロジェクト管理&btnG=検?%
