Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Symfonyのアーキテクチャ
Search
Katsuhiro Ogawa
July 01, 2012
Programming
4
3.1k
Symfonyのアーキテクチャ
2012/06/30 Symfony勉強会 #6
Katsuhiro Ogawa
July 01, 2012
Tweet
Share
More Decks by Katsuhiro Ogawa
See All by Katsuhiro Ogawa
新規プロダクト開発に伴う既存マイクロサービスのリアーキテクティングとその後
fivestar
1
140
Goで学ぶSOLID原則
fivestar
0
300
メルカリ CSE チームの 歩みと取り組み / Steps and Tries in the CSE team for Mercari
fivestar
2
890
Go in Corporate Solutions Engineering
fivestar
0
2.4k
いつまでPHP 5.x使ってるの
fivestar
1
1.9k
PHP のドキュメントを読んで PHP のことをもっと知ろう
fivestar
1
3.2k
CrocosSecurityBundleを Symfony3.0に対応した話
fivestar
0
240
PHP BLT だけど HTML5 の コンテンツモデルのお話
fivestar
0
2.4k
THE NEW "PERFECT PHP" WILL BE COMING SOON
fivestar
0
8k
Other Decks in Programming
See All in Programming
ErdMap: Thinking about a map for Rails applications
makicamel
1
590
令和7年版 あなたが使ってよいフロントエンド機能とは
mugi_uno
10
5.1k
asdf-ecspresso作って 友達が増えた話 / Fujiwara Tech Conference 2025
koluku
0
1.4k
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
2.1k
情報漏洩させないための設計
kubotak
5
1.3k
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
770
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
630
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
580
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
8
1.9k
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
Featured
See All Featured
Docker and Python
trallard
43
3.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Writing Fast Ruby
sferik
628
61k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Mobile First: as difficult as doing things right
swwweet
222
9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
It's Worth the Effort
3n
183
28k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Automating Front-end Workflow
addyosmani
1366
200k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Transcript
Symfonyの アーキテクチャ OGAWA Katsuhiro 2012/06/30 Symfony勉強会#6
‣খ༤େ@fivestr ‣גࣜձࣾΫϩίε ‣ύʔϑΣΫτPHP ‣ޮతͳWebΞϓϦ έʔγϣϯͷ࡞Γํ ‣ઌ25ࡀʹͳΓ·ͨ͠ ABOUT ME
AGENDA ‣symfony 1.xͷΞʔΩςΫνϟ ‣Symfony2ͷΞʔΩςΫνϟ ‣ORMͷΞʔΩςΫνϟ ‣ΞʔΩςΫνϟʹؔ͢Δࢀߟॻ੶
アーキテクチャとは ‣ιϑτΣΞͷʮઃܭࢥʯ ‣ʮߏʯΛࢦ͢߹͋Δ
symfony 1 ‣WebΞϓϦέʔγϣϯϑϨʔϜ ϫʔΫ ‣ػೳ͕๛ ‣࣮ଟ ‣Delicious, Dailymotion
フレームワークの内部 ‣symfonyػೳ͕๛ ‣ೝূཧ ‣ϧʔςΟϯά ‣ϑΥʔϜ ‣ςϯϓϨʔτ ‣ϩΪϯά
None
フレームワークの内部 ‣framework ‣Έ߹ΘͤͯWebΞϓϦͷϑ ϨʔϜϫʔΫͱͯ͠ػೳ͢Δ ‣platform ‣୯ମͰར༻ՄೳͳϥΠϒϥϦ ‣symfony 1.1͔Β໌֬ʹ
フレームワークの内部 ‣platform෦ʹ͓͚ΔϥΠϒϥϦ ͷ֦ுՄೳ͕ͩɺ෦ͰΘΓ ͱڧҾͰ൚༻ੑͷͳ͍࣮ʹͳͬ ͍ͯͨ
プラグイン ‣ผͷϥΠϒϥϦͳͲΛ؆୯ʹΈ ࠐΊΔΑ͏ʹ͢ΔΈ ‣DoctrinejQuery ‣ࣗͰ࡞ΕΔ ‣ձࣾͰڞ௨ϥΠϒϥϦΛ࡞Δ
プラグイン ‣ϓϥάΠϯͷΈͷ͓͔͛Ͱ؆ ୯ʹϑϨʔϜϫʔΫͷ֦ுՄೳ ʹ
プラグイン ‣࠷ॳ͔ΒϓϥάΠϯͰΞϓϦΛ ։ൃ͢Δ͜ͱΈ্Մೳ ‣ΞϓϦ͝ͱ͍ճͤΔ
Symfony2 ‣symfonyͷޙܧʹͨΔSymfony2 ‣Ұ͔Βॻ͖͞ΕͨͨΊɺ1ܥͱ ·ͬͨͭ͘ͷͱݴΘΕΔ͜ ͱଟ͍ ‣࣮͋Γ ‣ ‣Overblog
symfony 1とSymfony2 ‣frameworkͱplatform͕ΑΓ໌֬ ʹ͞Εͨ ‣ਓؾͩͬͨϓϥάΠϯͷΈ͕ ΑΓͨΓલͷͷʹ ‣BundleͱComponent
Component ‣୯ମͰར༻ՄೳͳϥΠϒϥϦΛ ύοέʔδԽͨ͠ͷ͕
Component ‣EventDispatcher ‣Routing ‣Templating ‣Yaml ‣HttpKernel ‣...
Bundle ‣ϓϥάΠϯͷΑ͏ͳΈ ‣ϑϨʔϜϫʔΫͷػೳBundleͱ ͯ͠ఏڙ͞Ε͍ͯΔ ‣FrameworkBundle
Bundle ‣ΞϓϦBundleͱͯ͠࡞ ‣StoreBundle ‣ϥΠϒϥϦ࿈ܞ ‣DoctrineBundle ‣MonologBundle
Bundle ‣ΞϓϦͷίʔυBundleͷதʹ࡞ Δ ‣ͯ͢ͷػೳ͕Bundleͱͯ͠ύο έʔδԽ͞ΕΔͨΊɺ͍ͭͰ࠶ ར༻Մೳ
DIコンテナ ‣ґଘؔͷཧΛҾ͖ड͚Δ ‣ίϯϙʔωϯτؒͷґଘDIίϯ ςφʹઃఆ͞ΕΔ ‣DependencyInjection
Symfony2のアーキテクチャ ‣Symfony2ͰɺBundleͱ Componentͱ͍͏֓೦͕ొͨ͠ ͕ɺߟ͑ํsymfony 1ͷ͔࣌Β ଘࡏ͍ͯͨ͠
Symfony2のアーキテクチャ ‣symfony 1ͷ͜Ζɺґଘੑͷཧ ͕ෳࡶԽ͍͕ͯͨ͠ɺDIίϯςφ ͷ࠾༻ʹΑΓ֦ுͷํ๏͕౷Ұ͞ Εͨ
フレームワークとして ‣Symfony21͔Βॻ͔ΕͨͨΊ࣮ ͦͭ͜ͷ͚ͩͲɺઃܭࢥ ͷ෦symfony 1͔Βड͚ܧ͕ Ε͍ͯΔ
ORMのアーキテクチャ ‣symfony 1ͱSymfony2Ͱɺ ORM(Doctrine)ͷΞʔΩςΫνϟ ͕มߋ͞Ε͍ͯΔ ‣symfony 1: Active Record ‣Symfony2:
Data Mapper
ORMのアーキテクチャ ‣Active Record ‣$record->save(); ‣Data Mapper ‣$mapper->save($record);
Active Record ‣ߦ(=Record)ΦϒδΣΫτ͕σʔ λϕʔεʹΞΫηε͢ΔػೳΛ ͍࣋ͬͯΔ
Active Record ‣ར༻͕؆୯ ‣ΦϒδΣΫτ͕ORMͷ੍Λड͚ Δ
Active Record ‣ػೳΛ࣋ͬͨΫϥεΛܧঝ͢Δ ‣DoctrineͳΒDoctrine_Record ‣PropelͳΒBaseObject ‣ΦϒδΣΫτ͕ORMͷ੍Λड͚ Δ
Data Mapper ‣ߦΦϒδΣΫτʹखΛग़͞ͳ͍ ‣ܧঝෆཁ ‣Plain Old PHP Object ‣DataMapperΦϒδΣΫτΛհ͠ ͯσʔλϕʔεΞΫηε͢Δ
Data Mapper ‣Data Mapperͷ߹ɺΦϒδΣΫ τʹ੍ݶ͕͔͔Βͳ͍ͨΊࣗ༝ ͕ߴ͍
参考書籍 ‣ΞʔΩςΫνϟΛਂ͘Δʹɺ ྑ࣭ͳॻ੶ΛಡΉͷ͕Α͍ ‣͍͍ͩͨߴ͍͚ͲɺΑ͍ຊ૬ ԠͷՁ͕͋Δ
PofEAA ‣ΤϯλʔϓϥΠζΞ ϓϦέʔγϣϯΞʔ ΩςΫνϟύλʔϯ ‣http:// www.amazon.co.jp/ dp/4798105538
ご清聴ありがとう ございました。