Symfonyのアーキテクチャ

 Symfonyのアーキテクチャ

2012/06/30 Symfony勉強会 #6

Ff822949384025796e11fd7f681df060?s=128

Katsuhiro OGAWA

July 01, 2012
Tweet

Transcript

  1. Symfonyの アーキテクチャ OGAWA Katsuhiro 2012/06/30 Symfony勉強会#6

  2. ‣খ઒༤େ@fivestr ‣גࣜձࣾΫϩίε ‣ύʔϑΣΫτPHP ‣ޮ཰తͳWebΞϓϦ έʔγϣϯͷ࡞Γํ ‣ઌ೔25ࡀʹͳΓ·ͨ͠ ABOUT ME

  3. AGENDA ‣symfony 1.xͷΞʔΩςΫνϟ ‣Symfony2ͷΞʔΩςΫνϟ ‣ORMͷΞʔΩςΫνϟ ‣ΞʔΩςΫνϟʹؔ͢Δࢀߟॻ੶

  4. アーキテクチャとは ‣ιϑτ΢ΣΞͷʮઃܭࢥ૝ʯ ‣ʮߏ଄ʯΛࢦ͢৔߹΋͋Δ

  5. symfony 1 ‣WebΞϓϦέʔγϣϯϑϨʔϜ ϫʔΫ ‣ػೳ͕๛෋ ‣࣮੷ଟ਺ ‣Delicious, Dailymotion

  6. フレームワークの内部 ‣symfony͸ػೳ͕๛෋ ‣ೝূ؅ཧ ‣ϧʔςΟϯά ‣ϑΥʔϜ ‣ςϯϓϨʔτ ‣ϩΪϯά

  7. None
  8. フレームワークの内部 ‣framework ‣૊Έ߹ΘͤͯWebΞϓϦͷϑ ϨʔϜϫʔΫͱͯ͠ػೳ͢Δ ‣platform ‣୯ମͰ΋ར༻ՄೳͳϥΠϒϥϦ ‣symfony 1.1͔Β໌֬ʹ

  9. フレームワークの内部 ‣platform෦෼ʹ͓͚ΔϥΠϒϥϦ ͷ֦ு͸Մೳ͕ͩɺ಺෦Ͱ͸ΘΓ ͱڧҾͰ൚༻ੑͷͳ͍࣮૷ʹͳͬ ͍ͯͨ

  10. プラグイン ‣ผͷϥΠϒϥϦͳͲΛ؆୯ʹ૊Έ ࠐΊΔΑ͏ʹ͢Δ࢓૊Έ ‣Doctrine΍jQuery ‣ࣗ෼Ͱ΋࡞ΕΔ ‣ձࣾͰڞ௨ϥΠϒϥϦΛ࡞Δ

  11. プラグイン ‣ϓϥάΠϯͷ࢓૊Έͷ͓͔͛Ͱ؆ ୯ʹϑϨʔϜϫʔΫͷ֦ு΋Մೳ ʹ

  12. プラグイン ‣࠷ॳ͔ΒϓϥάΠϯ಺ͰΞϓϦΛ ։ൃ͢Δ͜ͱ΋࢓૊Έ্Մೳ ‣ΞϓϦ͝ͱ࢖͍ճͤΔ

  13. Symfony2 ‣symfonyͷޙܧʹ౰ͨΔSymfony2 ‣Ұ͔Βॻ͖௚͞ΕͨͨΊɺ1ܥͱ ͸·ͬͨ͘΂ͭ΋ͷͱݴΘΕΔ͜ ͱ΋ଟ͍ ‣࣮੷͋Γ ‣ ‣Overblog

  14. symfony 1とSymfony2 ‣frameworkͱplatform͕ΑΓ໌֬ ʹ෼཭͞Εͨ ‣ਓؾͩͬͨϓϥάΠϯͷ࢓૊Έ͕ ΑΓ౰ͨΓલͷ΋ͷʹ ‣BundleͱComponent

  15. Component ‣୯ମͰར༻ՄೳͳϥΠϒϥϦΛ ύοέʔδԽͨ͠΋ͷ͕

  16. Component ‣EventDispatcher ‣Routing ‣Templating ‣Yaml ‣HttpKernel ‣...

  17. Bundle ‣ϓϥάΠϯͷΑ͏ͳ࢓૊Έ ‣ϑϨʔϜϫʔΫͷػೳ΋Bundleͱ ͯ͠ఏڙ͞Ε͍ͯΔ ‣FrameworkBundle

  18. Bundle ‣ΞϓϦ΋Bundleͱͯ͠࡞੒ ‣StoreBundle ‣ϥΠϒϥϦ࿈ܞ ‣DoctrineBundle ‣MonologBundle

  19. Bundle ‣ΞϓϦͷίʔυ΋Bundleͷதʹ࡞ Δ ‣͢΂ͯͷػೳ͕Bundleͱͯ͠ύο έʔδԽ͞ΕΔͨΊɺ͍ͭͰ΋࠶ ར༻Մೳ

  20. DIコンテナ ‣ґଘؔ܎ͷ؅ཧΛҾ͖ड͚Δ ‣ίϯϙʔωϯτؒͷґଘ͸DIίϯ ςφʹઃఆ͞ΕΔ ‣DependencyInjection

  21. Symfony2のアーキテクチャ ‣Symfony2Ͱ͸ɺBundleͱ Componentͱ͍͏֓೦͕ొ৔ͨ͠ ͕ɺߟ͑ํ͸symfony 1ͷ͔࣌Β ଘࡏ͍ͯͨ͠

  22. Symfony2のアーキテクチャ ‣symfony 1ͷ͜Ζɺґଘੑͷ؅ཧ ͕ෳࡶԽ͍͕ͯͨ͠ɺDIίϯςφ ͷ࠾༻ʹΑΓ֦ுͷํ๏͕౷Ұ͞ Εͨ

  23. フレームワークとして ‣Symfony2͸1͔Βॻ͔ΕͨͨΊ࣮ ૷ͦ͜΂ͭ΋ͷ͚ͩͲɺઃܭࢥ૝ ͷ෦෼͸symfony 1͔Βड͚ܧ͕ Ε͍ͯΔ

  24. ORMのアーキテクチャ ‣symfony 1ͱSymfony2Ͱ͸ɺ ORM(Doctrine)ͷΞʔΩςΫνϟ ͕มߋ͞Ε͍ͯΔ ‣symfony 1: Active Record ‣Symfony2:

    Data Mapper
  25. ORMのアーキテクチャ ‣Active Record ‣$record->save(); ‣Data Mapper ‣$mapper->save($record);

  26. Active Record ‣ߦ(=Record)ΦϒδΣΫτ͕σʔ λϕʔεʹΞΫηε͢ΔػೳΛ ͍࣋ͬͯΔ

  27. Active Record ‣ར༻͕؆୯ ‣ΦϒδΣΫτ͕ORMͷ੍໿Λड͚ Δ

  28. Active Record ‣ػೳΛ࣋ͬͨΫϥεΛܧঝ͢Δ ‣DoctrineͳΒDoctrine_Record ‣PropelͳΒBaseObject ‣ΦϒδΣΫτ͕ORMͷ੍໿Λड͚ Δ

  29. Data Mapper ‣ߦΦϒδΣΫτʹ͸खΛग़͞ͳ͍ ‣ܧঝෆཁ ‣Plain Old PHP Object ‣DataMapperΦϒδΣΫτΛհ͠ ͯσʔλϕʔε΁ΞΫηε͢Δ

  30. Data Mapper ‣Data Mapperͷ৔߹ɺΦϒδΣΫ τʹ੍ݶ͕͔͔Βͳ͍ͨΊࣗ༝౓ ͕ߴ͍

  31. 参考書籍 ‣ΞʔΩςΫνϟΛਂ͘஌Δʹ͸ɺ ྑ࣭ͳॻ੶ΛಡΉͷ͕Α͍ ‣͍͍ͩͨߴ͍͚ͲɺΑ͍ຊ͸૬ ԠͷՁ஋͕͋Δ

  32. PofEAA ‣ΤϯλʔϓϥΠζΞ ϓϦέʔγϣϯΞʔ ΩςΫνϟύλʔϯ ‣http:// www.amazon.co.jp/ dp/4798105538

  33. ご清聴ありがとう ございました。