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
400
メルカリ CSE チームの 歩みと取り組み / Steps and Tries in the CSE team for Mercari
fivestar
2
950
Go in Corporate Solutions Engineering
fivestar
0
2.5k
いつまでPHP 5.x使ってるの
fivestar
1
2k
PHP のドキュメントを読んで PHP のことをもっと知ろう
fivestar
1
3.3k
CrocosSecurityBundleを Symfony3.0に対応した話
fivestar
0
290
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
contribution to astral-sh/uv
shunsock
0
560
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
200
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
1.9k
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
110
品質ワークショップをやってみた
nealle
0
660
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
1
130
CSC509 Lecture 08
javiergs
PRO
0
270
AI Agent 時代的開發者生存指南
eddie
4
2.2k
マンガアプリViewerの大画面対応を考える
kk__777
0
420
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
Webサーバーサイド言語としてのRustについて
kouyuume
1
5k
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
120
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Optimizing for Happiness
mojombo
379
70k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
Why Our Code Smells
bkeepers
PRO
340
57k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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
ご清聴ありがとう ございました。