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.2k
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
330
メルカリ CSE チームの 歩みと取り組み / Steps and Tries in the CSE team for Mercari
fivestar
2
920
Go in Corporate Solutions Engineering
fivestar
0
2.5k
いつまでPHP 5.x使ってるの
fivestar
1
2k
PHP のドキュメントを読んで PHP のことをもっと知ろう
fivestar
1
3.2k
CrocosSecurityBundleを Symfony3.0に対応した話
fivestar
0
260
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
Compose Hot Reload is here, stop re-launching your apps! (Android Makers 2025)
zsmb
1
550
The Implementations of Advanced LR Parser Algorithm
junk0612
1
390
Do Dumb Things
mitsuhiko
0
440
Jakarta EE Meets AI
ivargrimstad
0
190
設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
nrslib
5
1.1k
State of Namespace
tagomoris
4
1.9k
PHP で学ぶ OAuth 入門
azuki
1
210
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
6
1.1k
Exit 8 for SwiftUI
ojun9
0
140
生成AIを使ったQAアプリケーションの作成 - ハンズオン補足資料
oracle4engineer
PRO
3
250
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
110
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
77web
4
690
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Why Our Code Smells
bkeepers
PRO
336
57k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
5
560
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Automating Front-end Workflow
addyosmani
1369
200k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
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
ご清聴ありがとう ございました。