Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPでダイエット / Dietcube #phpblt

PHPでダイエット / Dietcube #phpblt

PHP de Diet / Released Dietcube 1.0.0
https://packagist.org/packages/dietcube/dietcube

Sotaro Karasawa

January 13, 2016
Tweet

More Decks by Sotaro Karasawa

Other Decks in Technology

Transcript

  1. PHP ͰμΠΤοτ
    @sotarok
    Marcari, Inc.

    View Slide

  2. ࣗݾ঺հ
    @sotarok
    "ͦ͏ͨΖ͏͚ʔ" ◀࠷ۙ͋·ΓΞϐʔϧͯ͠ͳ͍
    ͦ͏ͨΖ͏Ͱ͍͍Α
    ࠷ۙ͸Ϩʔαʔࢤ๬Ͱ͢

    View Slide

  3. ͤΜͰΜ
    ങ͍·͠ΐ͏
    ग़൛ه೦Πϕϯτggrks

    View Slide

  4. ͤΜͰΜ
    Ԡื͠·͠ΐ͏
    http://bit.ly/mercariphp

    View Slide

  5. Έͳ͞Μ

    View Slide

  6. μΠΤοτͯ͠·͔͢ʔʁ

    View Slide

  7. PHP ͰμΠΤοτͱ͍͑͹

    View Slide

  8. dietcake!!!

    View Slide

  9. Ͱ͢ΑͶ!?

    View Slide

  10. CakePHP ͩͱ
    ͍Ζ͍ΖΑ͚͍ͳ΋ͷ͕͍ͭͯΔ͔Β
    μΠΤοτͤͨ͞΍ͭ

    View Slide

  11. ⭕ ͸΍͍
    ⭕ ͏͍͢
    ⭕ Θ͔Γ΍͍͢

    View Slide

  12. K̋ab ͞Μͱ͔
    M̋rcari ͱ͔

    View Slide

  13. ݁ߏ͍Ζ͍Ζ͋Γ·͢

    View Slide

  14. "ࣗࣾϑϨʔϜϫʔΫ"

    View Slide

  15. * ֶशίετ
    * Ξοϓσʔτίετ
    * ࣗࣾͷཁ݅΁ͷϚον

    View Slide

  16. → ͲΜͲΜ΍Ε

    View Slide

  17. ͍͖͞ΜͷPHPք۾

    View Slide

  18. PSR-7 ͩͱ͔
    Symfony Components ͩͱ͔
    Zend Framework ͩͱ͔
    Aura ͩͱ͔

    View Slide

  19. ͍͍͔Μ͡ʹͳ͖ͬͯͯΔ (ࡶ

    View Slide

  20. brtRiver͞Μͷ΍ͭ
    ݁ߏࢀߟʹͳΓ·͢Α
    ʮPHP7 Ͱ PSR-7 ͱ Middleware Λ࢖͏ϚΠΫϩϑϨʔϜ
    ϫʔΫΛॻ͍ͯΈͨʯ
    http://d.hatena.ne.jp/brtRiver/20160103/microframework_psr7_php7

    View Slide

  21. Ͱ΍ͬͺSymfony͸͍͢͝ͳͬͯ

    View Slide

  22. ͋Εͷ͍͢͝
    ͓ͦ͗ͱ͔ͨ͠Μ͡ͷ΍͕ͭ΄͍͠
    ͬͯͷΛݩʹ

    View Slide

  23. ͓Εͷ͔Μ͕͑Δ͍͖͞ΐ͏ͷ
    ͓Ε͓Ε
    ϑϨʔϜϫʔΫʹ͍ͭͯߟ͑ͯΈΔ

    View Slide

  24. ⭕ ͏͍͢
    ⭕ ͸΍͍
    ⭕ Θ͔Γ΍͍͢

    View Slide

  25. Ͱ΋ϧʔςΟϯά͸ ...
    .htaccess ͡Όͳ͍Αͳ
    ※ DietCake ͸ mod_rewrite Ͱ routing

    View Slide

  26. Ͱ΋ϧʔςΟϯά͸ ...
    .htaccess ͡Όͳ͍Αͳ
    ※ DietCake ͸ mod_rewrite Ͱ routing
    → FastRoute ͕͋Δ͡Όͳ͍͔

    View Slide

  27. View ΋͕͢͞ʹ PHP View ͸ɻɻ
    ※ ϝϧΧϦࣾ಺Ͱ͸Twig΋ซ༻

    View Slide

  28. View ΋͕͢͞ʹ PHP View ͸ɻɻ
    ※ ϝϧΧϦࣾ಺Ͱ͸Twig΋ซ༻
    → ͏Μ Twig ͕͋Δ͡Όͳ͍͔

    View Slide

  29. Logger ΋Ͳ͏ͤ Monolog ͔ͭ͏Ͱ
    ͠ΐ?
    ※ ϝϧΧϦࣾ಺Ͱ΋ Monolog ͭͯ͜Δ

    View Slide

  30. Logger ΋Ͳ͏ͤ Monolog ͔ͭ͏Ͱ
    ͠ΐ?
    ※ ϝϧΧϦࣾ಺Ͱ΋ Monolog ͭͯ͜Δ
    → Monolog ͕͋Δ͡Όͳ͍͔ɺ͋ͱ PSR ΋

    View Slide

  31. ͏͍ͬ͢ DI ΋΄͍͠
    ※ ͏Μɺ΄͍͠

    View Slide

  32. ͏͍ͬ͢ DI ΋΄͍͠
    ※ ͏Μɺ΄͍͠
    → Pimple ͘Β͍ͷ͏͍͢΍ͭ

    View Slide

  33. EventDispatcher ΋
    ͋Δͱ͚ͬ͜͏͏Ε͍͠
    ※ ·࣮͋ࡍʹ͸͋Δͱ͏Ε͍͠
    →·͋ͦΕͰ͍͏ͱ΍ͬͺSymfony ?

    View Slide

  34. EventDispatcher ΋
    ͋Δͱ͚ͬ͜͏͏Ε͍͠
    ※ ·࣮͋ࡍʹ͸͋Δͱ͏Ε͍͠

    View Slide

  35. DB ϨΠϠʔ͸ͳΜ͔ܾΊखͳ͍͠
    ͱΓ͋͑ͣ PDO ͕࢖͑Ε͹ ...
    ͍΍·͋ ...
    (ͱ͸͍͕͑͢͞ʹੜPDO͸ ...

    View Slide

  36. ·ͱΊΔͱ
    * Very Simple MVC Architecture,
    * DI Container (Pimple),
    * Router (FastRoute),
    * EventDispatcher (Symfony EventDispatcher),
    * Renderer (Twig),
    * Logger (Monolog),
    * and some core components.

    View Slide

  37. ͦ͏͍͏ͷ͕͋Δͱ͍͍ΑͶʔʂ

    View Slide

  38. (͍͍ΑͶʔʂ)

    View Slide

  39. ͋Γ·ͨ͠

    View Slide

  40. !?

    View Slide

  41. https://github.com/mercari/dietcube

    View Slide