Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Hidenori Goto
ODP, PPTX
1,006 views
Symfony 1.4 TIPS from Openpne Source Code
2010/9/2開催 OpenPNE3で学ぶsymfony勉強会(第4回)
Technology
◦
Read more
2
Save
Share
Embed
Embed presentation
Download
Download as ODP, PPTX
1
/ 49
2
/ 49
3
/ 49
4
/ 49
5
/ 49
6
/ 49
7
/ 49
8
/ 49
9
/ 49
10
/ 49
11
/ 49
12
/ 49
13
/ 49
14
/ 49
15
/ 49
16
/ 49
17
/ 49
18
/ 49
19
/ 49
20
/ 49
21
/ 49
22
/ 49
23
/ 49
24
/ 49
25
/ 49
26
/ 49
27
/ 49
28
/ 49
29
/ 49
30
/ 49
31
/ 49
32
/ 49
33
/ 49
34
/ 49
35
/ 49
36
/ 49
37
/ 49
38
/ 49
39
/ 49
40
/ 49
41
/ 49
42
/ 49
43
/ 49
44
/ 49
45
/ 49
46
/ 49
47
/ 49
48
/ 49
49
/ 49
More Related Content
ODP
TwitterのStreaming ApiをPhpから使う
by
Hidenori Goto
PDF
こんなに違う!Unityアプリケーション講座
by
Unity Technologies Japan K.K.
PPTX
Tfug kansai vol2
by
Natsutani Minoru
PPTX
Tfug kansai vol1
by
Natsutani Minoru
PDF
Tensor flowを使った キュウリの仕分け あれこれ
by
Makoto Koike
PPTX
初心者が Python で戸惑ったところ
by
Emma Haruka Iwao
DOC
I pad 2 games
by
Jane kal
PPT
Task
by
Shingo Nakamura
TwitterのStreaming ApiをPhpから使う
by
Hidenori Goto
こんなに違う!Unityアプリケーション講座
by
Unity Technologies Japan K.K.
Tfug kansai vol2
by
Natsutani Minoru
Tfug kansai vol1
by
Natsutani Minoru
Tensor flowを使った キュウリの仕分け あれこれ
by
Makoto Koike
初心者が Python で戸惑ったところ
by
Emma Haruka Iwao
I pad 2 games
by
Jane kal
Task
by
Shingo Nakamura
Viewers also liked
ODP
20分でSymfony@OSC名古屋
by
Shingo Nakamura
PPT
symfonyの始め方
by
Hidenori Goto
PDF
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
PDF
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
by
Yuusuke Takeuchi
PDF
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
by
Manabu Koga
PDF
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PDF
PHPで大規模ブラウザゲームを開発してわかったこと
by
Kentaro Matsui
PDF
ゲームサーバ開発現場の考え方
by
Daisaku Mochizuki
PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
ODP
Doctrineではじめるsymfony1.2開発
by
Katsuhiro Ogawa
20分でSymfony@OSC名古屋
by
Shingo Nakamura
symfonyの始め方
by
Hidenori Goto
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
日曜プログラマーが 1週間くらいで通信対戦ゲームを作ってみた
by
Yuusuke Takeuchi
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
by
Manabu Koga
ソーシャルゲームのためのデータベース設計
by
Yoshinori Matsunobu
PHPで大規模ブラウザゲームを開発してわかったこと
by
Kentaro Matsui
ゲームサーバ開発現場の考え方
by
Daisaku Mochizuki
新入社員のための大規模ゲーム開発入門 サーバサイド編
by
infinite_loop
Doctrineではじめるsymfony1.2開発
by
Katsuhiro Ogawa
More from Hidenori Goto
PDF
Excelで勤務時間合計2
by
Hidenori Goto
PDF
Excelで勤務時間合計
by
Hidenori Goto
PDF
Symfony2 3rd-Party Bundles
by
Hidenori Goto
PDF
Symfony2 intro-20111204
by
Hidenori Goto
PDF
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
by
Hidenori Goto
PDF
翻訳について
by
Hidenori Goto
PDF
Symfony2 Behat/BDD (#Symfony2study 4)
by
Hidenori Goto
PDF
Symfony2 behat-bdd
by
Hidenori Goto
ODP
Symfony2 workshop-0 (nagoya 2011/2/10)
by
Hidenori Goto
ODP
Symfony2 workshop-1 (nagoya 2011/2/10)
by
Hidenori Goto
PDF
Symfony2 workshop-2
by
Hidenori Goto
PDF
Doctrine2 odm-workshop-1
by
Hidenori Goto
PDF
Symfony2 workshop-1
by
Hidenori Goto
ODP
Symfony2 introduction
by
Hidenori Goto
ODP
Orm Designer
by
Hidenori Goto
ODP
Symfony tdd
by
Hidenori Goto
ODP
Symfony2 caching
by
Hidenori Goto
ODP
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
by
Hidenori Goto
ODP
HTC Desireについて
by
Hidenori Goto
ODP
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
by
Hidenori Goto
Excelで勤務時間合計2
by
Hidenori Goto
Excelで勤務時間合計
by
Hidenori Goto
Symfony2 3rd-Party Bundles
by
Hidenori Goto
Symfony2 intro-20111204
by
Hidenori Goto
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
by
Hidenori Goto
翻訳について
by
Hidenori Goto
Symfony2 Behat/BDD (#Symfony2study 4)
by
Hidenori Goto
Symfony2 behat-bdd
by
Hidenori Goto
Symfony2 workshop-0 (nagoya 2011/2/10)
by
Hidenori Goto
Symfony2 workshop-1 (nagoya 2011/2/10)
by
Hidenori Goto
Symfony2 workshop-2
by
Hidenori Goto
Doctrine2 odm-workshop-1
by
Hidenori Goto
Symfony2 workshop-1
by
Hidenori Goto
Symfony2 introduction
by
Hidenori Goto
Orm Designer
by
Hidenori Goto
Symfony tdd
by
Hidenori Goto
Symfony2 caching
by
Hidenori Goto
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
by
Hidenori Goto
HTC Desireについて
by
Hidenori Goto
Abコマンドを使ったウェブアプリケーションのパフォーマンス計測
by
Hidenori Goto
Symfony 1.4 TIPS from Openpne Source Code
1.
OpenPNE コード探訪 symfony
開発に役立つ TIPS 日本Symfonyユーザー会 後藤 秀宣(@hidenorigoto)
2.
自己紹介 後藤 秀宣
3.
@hidenorigoto
4.
PHPは2000年くらいから
5.
symfonyは、マジメに触っているのは1.2から
6.
日本Symfonyユーザー会 ドキュメント翻訳温泉ツアー♨
7.
symfony での開発
↓ ちょっと変わったことをやろうとすると まったくやり方が分からない ハマる
8.
symfony 嫌い
9.
ちょっと待った!
10.
それ、 OpenPNE
でもう実装してるよ !
11.
概要 OpenPNEのコードを読んで、symfony開発に役立つTIPSを紹介します
12.
イベントディスパッチャーの仕組み
13.
OpenPNE独自イベントの例
14.
組み込みイベントの使用例
15.
アクション
16.
フィルターチェーン
17.
イベントディスパッチャー
18.
イベントディスパッチャーとは? symfonyに搭載された機能 symfonyの機能を拡張するための仕組み
19.
デザインパターン「オブザーバーパターン」の実装 (の亜種)
20.
OpenPNEのコアとプラグイン、プラグインとプラグインをつなぐ
21.
Symfony Components ->Event
Dispathcer (C)Sensio
22.
OpenPNEで使われているイベント symfony組み込みのイベント
23.
OpenPNE独自のイベント
24.
OpenPNE独自のイベント op_confirmation.list op_confirmation.decision
op_action.pre_execute_(ModuleName)_(ActionName) op_action.pre_execute op_action.post_execute_(ModuleName)_(ActionName) op_action.post_execute op_activity.template.filter_body op_activity.filter_body op_doctrine.%s_%s_%s op_message_plugin.decorate_body op_opensocial.removeapp op_opensocial.addappfeeds_action.pre_execute
25.
具体的な使用箇所
26.
1.イベントを活用している例:あしあと あしあと機能をコアに組み込まず、プラグイン化
27.
コア側があしあと機能に依存していない
28.
イベントのオブザーバー (
リスナー ) を 登録している部分を見てみます
29.
opAshiatoPlugin/config/config.php
30.
opAshiatoPlugin/config/config.php
31.
opAshiatoPlugin/config/config.php
32.
イベントの通知側は 何をやっている?
33.
イベントの通知側を追ってみる op_actions.post_execute_member_profile op_actions.post_execute_friend_list
op_actions.post_execute_diary_show op_actions.post_execute_diary_listMember ↓ それぞれ検索して通知箇所を探す
34.
・・・ ・・・・・ ない?
35.
こたえ op_actions. post_execute_(
モジュール )_( アクション ) opExecutionFilter 内から通知
36.
opExecutionFilter::notifyPostExecuteActionEvent
37.
op_actions.post_execute_( モジュール )_(
アクション ) OpenPNEのそれぞれのモジュール、アクションにおいて、アクションの実行後に通知されるイベント
38.
イベント通知側で、イベント名を動的に設定している
39.
イベント名にモジュール名、アクション名が含まれているので、コアに組み込まれた特定のモジュール、アクションを実行した後に、何か独自の処理を追加する場合に使える
40.
このコードでの TIPS
41.
このコードでのTIPS 「すべてのアクション実行後に何かする」 ->Executionフィルターを拡張する
->共通処理だけなら、これだけでOK
42.
モジュールごと、アクションごとで使い分けられるイベントがあると何かと便利 ※大きなソフトウェア
43.
コア=汎用的 プラグイン=目的特化 という設計
※コア側に「ashiato*」のようなイベントを作らない プラグイン側でコアの汎用イベントを監視
44.
イベントの使用例2
45.
2.他のイベント使用例 task.cache.clear ↑
symfony 組み込みイベント
46.
task.cache.clear オブザーバー(リスナー)の登録 opApplicationConfiguration::initialize
->clearPluginCacheリスナー ->clearWebCacheリスナー リスナー clearPluginCache プラグインキャッシュをクリア
47.
clearWebCache ウェブキャッシュをクリア
48.
このコードでの TIPS
49.
このコードでのTIPS symfonyの組み込みイベントを使うと symfonyの組み込み機能をクラスの継承や
badノウハウを使わずにエレガントに拡張できる ※このようなイベントを持っているタスクは他にはないことに注意 組み込みイベントの一覧 http://www.symfony-project.org/reference/1_4/ja/15-Events#chapter_15_e18b1ea15d9c1dddf7fad47d3ea1043ca30184e6
Download