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
150
Goで学ぶSOLID原則
fivestar
0
380
メルカリ CSE チームの 歩みと取り組み / Steps and Tries in the CSE team for Mercari
fivestar
2
940
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
280
PHP BLT だけど HTML5 の コンテンツモデルのお話
fivestar
0
2.4k
THE NEW "PERFECT PHP" WILL BE COMING SOON
fivestar
0
8.1k
Other Decks in Programming
See All in Programming
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
200
iOS開発スターターキットの作り方
akidon0000
0
240
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
130
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
150
AHC051解法紹介
eijirou
0
420
コーディングは技術者(エンジニア)の嗜みでして / Learning the System Development Mindset from Rock Lady
mackey0225
2
410
ゲームの物理
fadis
3
990
Go製CLIツールをnpmで配布するには
syumai
2
1.2k
202507_ADKで始めるエージェント開発の基本 〜デモを通じて紹介〜(奥田りさ)The Basics of Agent Development with ADK — A Demo-Focused Introduction
risatube
PRO
6
1.4k
STUNMESH-go: Wireguard NAT穿隧工具的源起與介紹
tjjh89017
0
350
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.6k
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
130
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
450
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
332
22k
Documentation Writing (for coders)
carmenintech
73
5k
Rails Girls Zürich Keynote
gr2m
95
14k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
It's Worth the Effort
3n
185
28k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
For a Future-Friendly Web
brad_frost
179
9.9k
Bash Introduction
62gerente
614
210k
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
ご清聴ありがとう ございました。