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
Symfony2を1年間実践で使ってみて学んだこと
Search
Katsuhiro Ogawa
April 21, 2012
Programming
6.5k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Symfony2を1年間実践で使ってみて学んだこと
PHPカンファレンス北海道
2012.04.21
Katsuhiro Ogawa
April 21, 2012
More Decks by Katsuhiro Ogawa
See All by Katsuhiro Ogawa
新規プロダクト開発に伴う既存マイクロサービスのリアーキテクティングとその後
fivestar
1
170
Goで学ぶSOLID原則
fivestar
0
450
メルカリ CSE チームの 歩みと取り組み / Steps and Tries in the CSE team for Mercari
fivestar
2
980
Go in Corporate Solutions Engineering
fivestar
0
2.6k
いつまでPHP 5.x使ってるの
fivestar
1
2.1k
PHP のドキュメントを読んで PHP のことをもっと知ろう
fivestar
1
3.4k
CrocosSecurityBundleを Symfony3.0に対応した話
fivestar
0
330
PHP BLT だけど HTML5 の コンテンツモデルのお話
fivestar
0
2.5k
THE NEW "PERFECT PHP" WILL BE COMING SOON
fivestar
0
8.2k
Other Decks in Programming
See All in Programming
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
120
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.8k
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.7k
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
170
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
3.8k
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
150
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
740
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
430
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
150
FDEが実現するAI駆動経営の現在地
gonta
2
240
React本体のコードリーディング
high_g_engineer
0
110
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
450
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
190
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1k
A Tale of Four Properties
chriscoyier
163
24k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Between Models and Reality
mayunak
4
380
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
For a Future-Friendly Web
brad_frost
183
10k
KATA
mclloyd
PRO
35
15k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
390
Transcript
Symfony2Λ1࣮ؒફͰ ͬͯΈֶͯΜͩ͜ͱ גࣜձࣾΫϩίε খ༤େ
ࣗݾհ •খ ༤େ / ͓͕Θ ͔ͭͻΖ @fivestr •גࣜձࣾΫϩίε •ຊSymfonyϢʔβʔձ •PHPྺ6
( ≒ ϓϩάϥϛϯάྺ) •http://fivestar.hatenablog.com/
ஶॻ •ύʔϑΣΫτPHP •symfony 1.4ʹΑΔWebΞϓϦέʔγϣϯ։ൃ •ܦιϑτΤΞ
ࠓͷ༰ •Ϋϩίεͷ׆ಈհ •Symfonyʹ͍ͭͯ •͜ͷ1ͰֶΜͩ͜ͱ •ॻ੶ͷએʢҰ൪େࣄʣ
גࣜձࣾΫϩίε •2011.02.07ʹཱ •http://crocos.co.jp/ •5ਓͷPHPΤϯδχΞ •ओͳۀFacebookΞϓϦ։ൃ •डୗͰͳ͘ASP
αʔϏεհ(اۀ͚) •CrocosϚʔέςΟϯά •Facebook͚ϚʔέςΟϯάεΠʔτ •ݱࡏ8ͭͷΞϓϦΛఏڙ •CrocosΧλϩά •ָఱ্Ͱൢച͍ͯ͠ΔΛFacebook ϖʔδ্Ͱදࣔ͢ΔΞϓϦ
αʔϏεհ(Ұൠ͚) •Crocosεέδϡʔϥ •Crocosεϙοτ •CrocosΑ͕͖ͤ •Crocosݒ •ͯ͢FacebookΞϓϦ
Facebookެೝʂ •Ϋϩίε͕FacebookͷೝఆϚʔέςΟϯ άσϕϩούʔʹͳΓ·ͨ͠ʂ(ຊॳʂ) •4.19ʹൃද͞Ε͔ͨΓ •ࠃͰ4ࣾͷΈ
։ൃͷελΠϧ •֤ΞϓϦ͝ͱʹ୲͕1ਓ •2ਓ1νʔϜͰਐḿλεΫΛཧ •֤ࣗɺ1ʙ3िؒ͘Β͍ͰػೳΛ࡞ͬͯ ϦϦʔεΛ܁Γฦ͍ͯ͠Δ
։ൃʹ͍ͭͯ •αʔόαΠυͯ͢PHP •Symfony2ϑϨʔϜϫʔΫΛ࠾༻
Symfony2 •ൺֱత৽͍͠ϑϨʔϜϫʔΫ •PHP 5.3Ҏ্
Symfony2Λ࠾༻ͨ͠ܦҢ •৽͔͔ͬͨ͠Β…… •࠾༻ͨ࣌͠·ͩΞϧϑΝ൛ •PHP 5.3͚ͷϑϨʔϜϫʔΫͱͯ͠ଞʹ ·ͱͳͷ͕ͳ͔ͬͨ
Symfonyͷಛ •Symfonyߴ͍ॊೈੑΛ࣋ͭ •ઃܭͷࣗ༝͕ߴ͍ͨΊɺઃܭεΩϧ͕ ͦΕͳΓʹٻΊΒΕΔ •։ൃॳ৺ऀʹෆ͖
SymfonyͱϞσϧ •SymfonyͰ༷ʑͳ͜ͱ͕ϞσϧΛத৺ʹ ߦΘΕΔ •ೖྗϑΥʔϜΛѻ͏ॲཧͷྲྀΕ 1.ϑΥʔϜσʔλΛϞσϧʹө 2.Ϟσϧͷঢ়ଶΛόϦσʔγϣϯ 3.ϞσϧͷσʔλΛσʔλϕʔεอଘ
SymfonyͱϞσϧ •SymfonyͰϞσϧϐϡΞͳPHPΦϒ δΣΫτͱͯ͠ѻ͏ •Γ͍ͨ͜ͱʹ࠷దԽͨ͠ΦϒδΣΫτ Λ༻ҙ͢ΔͱεϜʔζʹΛղܾՄೳ
SymfonyʹݶΒͣ •ϞσϧΞϓϦέʔγϣϯͰͬͱॏ ཁͳ෦ •ϑϨʔϜϫʔΫ͕༻ҙͨ͠Ϋϥε͚ͩͰ ͳ͘ɺඞཁʹ͋Θͤͯॊೈʹ࣮͢Δ
Symfonyͱόϯυϧ •Symfonyͷػೳόϯυϧͱ͍͏୯ҐͰ· ͱΊΒΕ͓ͯΓɺඞཁͳͷ͚ͩ͏͜ ͱ͕Ͱ͖Δ •ϑϨʔϜϫʔΫ͕༻ҙ͢Δػೳ͕߹Θͳ ͚Εແཧʹ͏ඞཁͳ͍
νʔϜʹ͋ͬͨͷΛ͏ •SymfonyΛ͍࢝Ίͯ1൪͍ͮΒ͔ͬͨ ͷ͕ඪ४ͷೝূͷΈ •ઃఆ͕ෳࡶͰѻ͍ͮΒ͔ͬͨͷͰɺγϯ ϓϧͳೝূͷΈΛ࣮ • https://github.com/crocos/CrocosSecurityBundle
όϯυϧʹΑΔ࠶ར༻ •͍ճͤΔίʔυόϯυϧʹ·ͱΊͯ ͍ճ͍ͯ͠Δ •GitͰཧ͍ͯ͠Δ
γϯϓϧʹ࡞Δ͜ͱ •ͲΜͳʹॊೈʹͰ͖Δ͔Βͱ͍͑ɺෳ ࡶԽͯ͠ཧ͕େม •ඞཁͳΛγϯϓϧʹ࣮͍ͯ͘͜͠ͱ ͕ޮతʹΞϓϦΛ։ൃ͍ͯ͘͠ίπ
YAGNIݪଇ •“You ain’t gonna need it” ͷུ •ඞཁʹͳΔ·Ͱ࣮͠ͳ͍
DI •“Dependency Injection” ͷུ •ґଘੑͷೖͱ͍͏ҙຯ •ΦϒδΣΫτؒͷґଘΛ͑ΔͨΊͷ ςΫχοΫ
None
DIίϯςφ •ґଘؔΛઃఆ͓ͯ͘͠ͱɺ͏·͍͜ͱ ͬͯ͘ΕΔΦϒδΣΫτ •͍͗͢ΔͱෳࡶʹͳΔͷͰ΄Ͳ΄Ͳʹ ͓ͯ͘͠
࠷ۙͷ՝ •ΞϓϦͷύϑΥʔϚϯε͕ѱ͍ •ͦͦνϡʔχϯάΛ͍ͯ͠ͳ͍ •SymfonyࣗମΘΓͱॏ͍ •ςετΛॻ͘ •PHP 5.4Խ
SymfonyͬͯͲ͏ͳͷʁ •Έ͍ͨͳΈͦΦϒδΣΫτࢦͰͰ ͖͍ͯΔਓʹద͍ͯ͠Δ •σβΠϯύλʔϯͳͲΛਵॴͰऔΓೖΕͯ ͍ΔͨΊɺύλʔϯΛ͍ͬͯΔͱΘΓ ͱεϜʔζʹֶशͰ͖Δ •υϝΠϯۦಈઃܭ (DDD)
ॻ੶հ •͕͜Ε·Ͱ։ൃΛߦ͖ͬͯͨதͰֶΜ ͩ͜ͱΛॻ੶ʹ͠·ͨ͠ •ݱͷ։ൃऀ͚
ޮతͳWeb ΞϓϦέʔγϣϯ ͷ࡞Γํ •ٕज़ධࣾ •2,780ԁ •352ϖʔδ •5.29ൃച ISBN978-4-7741-5082-6
Part1 MVC։ൃͷجૅࣝ • 1ষ MVC։ൃͷ֓ཁ • 2ষ ΦϒδΣΫτࢦ
Part2 ϑϨʔϜϫʔΫΛར༻ ͢Δར • 3ষ ϨΨγʔίʔυͷܽ • 4ষ ϦϑΝΫλϦϯάɾσβΠϯύλʔ ϯ࣮ફ
• 5ষ ϑϨʔϜϫʔΫΛ׆༻͢Δ
Part3 ϞμϯPHP WebΞϓϦ έʔγϣϯ։ൃ • 6ষ ΞϓϦέʔγϣϯ։ൃΛ࢝ΊΔͨΊ ͷ४උ • 7ষ
σʔλϕʔεͱΤϯςΟςΟ • 8ষ ίϯτϩʔϥͱϏϡʔ • 9ষ ϑΥʔϜͱσʔλϕʔε
Part4 ػೳͷ࡞ͱ࣮ͷύ λʔϯԽ •10ষ Ϣʔβొ •11ষ ΠςϨʔγϣϯ •12ষ ཧը໘ •13ষ
ίϚϯυϥΠϯεΫϦϓτ •14ষ Ϣχοτςετ •15ষ ػೳςετ
None