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

CakePHPでも使える Composerを活用したモダンな開発手法

Yusuke Ando
September 14, 2013

CakePHPでも使える Composerを活用したモダンな開発手法

PHPカンファレンス2013にて発表

Yusuke Ando

September 14, 2013
Tweet

More Decks by Yusuke Ando

Other Decks in Programming

Transcript

  1. $PNQPTFSΛ׆༻ͨ͠Ϟμϯͳ։ൃख๏
    $BLF1)1Ͱ΋࢖͑Δ

    View Slide

  2. ZBOEP
    $BOEZ$BOFQIQ
    ʮ࠙਌ձϐβൃ஫ΞϓϦʯ

    View Slide

  3. 1)1ରԠ1BB4
    $IFGͰ"84Λࣗಈߏங
    $PNQPTFSʹ΋΋ͪΖΜରԠ
    44)TVEPՄೳ͔ͭαϙʔτ༗

    View Slide

  4. ΞδΣϯμ
    Կނ$PNQPTFS͕ඞཁ͔ʁ
    ࢖͍ํ
    $BLF1)1ͱ$PNQPTFSͷ૊Έ߹Θͤ

    View Slide

  5. View Slide

  6. $PNQPTFS
    1)1ґଘੑ؅ཧπʔϧ
    DPNQPTFSίϚϯυͰඞཁͳϥΠϒϥ
    ϦΛࣗಈతʹूΊͯ͘ΕΔ
    4ZNGPOZͷػೳͩͬͨ
    ݱࡏ͸σϑΝΫτελϯμʔυ

    View Slide

  7. ैདྷͷख๏
    ϥΠϒϥϦ͕ඞཁʹͳΔ
    MJCͱ͔ʹμ΢ϯϩʔυͯ͠ίϐʔ
    ͕Μ͹ͬͯ[email protected]

    View Slide

  8. ໰୊఺
    Ξοϓσʔτ͕೉͍͠
    ίʔυͷ෼ྔ͕૿͑Δ
    ϥΠϒϥϦ͕͍ͣΕฤू͞ΕΔ
    [email protected]஍ࠈ

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. ͜͏͍͏ͷ͸ྑ͘ͳ͍

    View Slide

  13. $PNQPTFSΛ࢖͓͏ʂ

    View Slide

  14. ࡞Δ΋ͷ
    7BHSBOUͰಈ͘
    $PNQPTFSͰϥΠϒϥϦΛಋೖ
    5XJUUFS͔Β৘ใऔಘ

    View Slide

  15. 7BHSBOU
    7JSUVBM#PY7BHSBOU
    IUUQTHJUIVCDPNZBOEPEQIQ
    OHJOYWBHSBOUTBNQMF
    HJUDMPOF
    WBHSBOUVQ

    View Slide


  16. View Slide

  17. DPNQPTFSKTPO
    WBHSBOUTTI
    [email protected]
    DPNQPTFSKTPOΛهड़͢Δ
    ࣗಈͰ΋खಈͰ΋Ͱ͖Δ

    View Slide

  18. DPNQPTFSKTPO
    {
    "name": "llmatsuri/sample",
    "authors": [
    {
    "name": "yando",
    "email": "[email protected]"
    }
    ],
    "require": {
    "dg/twitter-php": "*"
    }
    }

    View Slide

  19. DPNQPTFSKTPO
    ΄͍͠ϥΠϒϥϦΛݕࡧͯ͠ࢦఆ͢Δ
    8FCͰ΋ίϚϯυͰ΋ݕࡧͰ͖Δ
    ࣮͸1&"3΋ΠϯετʔϧͰ͖Δ
    ࠷ޙʹDPNQPTFSJOTUBMMͰ·ͱΊͯ%-

    View Slide

  20. DPNQPTFSJOTUBMM
    [email protected]:/vagrant_data$ composer install
    Loading composer repositories with package
    information
    Installing dependencies (including require-dev)
    - Installing dg/twitter-php (v3.1)
    Loading from cache
    Writing lock file
    Generating autoload files

    View Slide

  21. JOTUBMM͢Δͱ
    DPNQPTFSMPDL͕ੜ੒͞ΕΔ
    WFOEPSҎԼʹϥΠϒϥϦ͕%-͞ΕΔ
    WFOEPSҎԼʹΦʔτϩʔμ͕഑ஔ

    View Slide

  22. ࢖༻ޙ

    View Slide

  23. BVUPMPBE
    BVUPMPBEQIQ͚ͩΛSFRVJSF͢Δ
    ඞཁͳ࣌ʹ֤ΫϥεΛࣗಈͰಡΈࠐΉ
    ೋ౓ͱ[email protected]Λॻ͔ͳ͍
    ϑϨʔϜϫʔΫ͕ಡΈࠐΉ৔߹΋͋Δ

    View Slide

  24. JOEFYQIQ
    require_once 'vendor/autoload.php';
    $twitter = new Twitter();
    ͜Ε͚ͩͰ5XJUUFSΫϥεΛࣗಈతʹ
    WFOEPSEHUXJUUFSQIQTSD͔ΒಡΈࠐΉʂ

    View Slide

  25. Τϥʔʁ
    5XJUUFSΫϥε͸ίϯγϡʔϚΩʔͱ
    ίϯγϡʔϚγʔΫϨοτ͕ඞཁΒ͍͠

    View Slide

  26. EFWUXJUUFSDPNBQQT
    αΠϯΞοϓ
    ΞϓϦΛ࡞੒
    ੜ੒͞ΕͨΩʔ৘ใΛίϐͬͯ࢖͏

    View Slide

  27. औಘ
    require_once 'vendor/autoload.php';
    $twitter = new Twitter(
    'aaaa',
    'bbbb',
    'cccc',
    'dddd'
    );
    $info = $twitter->loadUserInfo('yando');
    var_dump($info->status->text);

    View Slide

  28. ͓͓ʂ

    View Slide

  29. ͋ͱ͸
    ϥΠϒϥϦΛDPNQPTFSKTPO΁௥Ճ
    DPNQPTFSVQEBUFͰߋ৽
    WFOEPSΛίϛοτ͠ͳ͍
    σϓϩΠ࣌ʹJOTUBMMͰWFOEPSΛ࠶ੜ

    View Slide

  30. ͞Βʹ
    143Λक͍ͬͯΕ͹ࣗ࡞ΫϥεͰ΋
    BVUPMPBEʹରԠͰ͖Δ
    1&"3ͳͲ΋DPNQPTFSͰΠϯετʔϧ
    ࣗ࡞ϥΠϒϥϦ΋QBDLHJTUͰެ։ʂ

    View Slide

  31. ࣗ࡞Ϋϥεͷϩʔυ

    View Slide

  32. View Slide

  33. QIQGSJFOET

    View Slide

  34. QIQGSJFOET
    HJUIVCDPNZBOEPEQIQGSJFOET
    QIQGSJFOETͷը૾Λऩू
    ࿩ͷ͖͔͚ͬʹ
    ʮQIQGSJFOETͷࣸਅࡱΓ·ͤΜ͔ʁʯ
    SVCZGSJFOETͷύΫϦ

    View Slide

  35. View Slide

  36. ී௨ͷ$BLF
    MJC$BLFͷԼʹϑϨʔϜϫʔΫ
    Ξοϓσʔτ͸ؤுͬͯೖସ͑
    ϦϙδτϦ͕ඒ͘͠ͳ͍

    View Slide

  37. $PNQPTFSԽ

    View Slide

  38. DPNQPTFSKTPO

    View Slide

  39. ΍Δ͜ͱ
    DPNQPTFSJOTUBMM
    DBLFCBLF
    BQQଆΛࣗಈੜ੒ʂ

    View Slide

  40. ࢼ͢ʁ
    7BHSBOUpMF΋ಉ͓͖ࠝͯ͠·ͨ͠
    HJUDMPOF
    WBHSBOUVQ
    IUUQ

    View Slide

  41. ৄ͘͠͸

    View Slide

  42. ·ͱΊ
    $PNQPTFSΛ࢖͏ͱ໘౗ͳ࡞ۀ͕ݮΔ
    ΞοϓσʔτΛසൟʹߦ͍඼࣭޲্
    ରԠ͍ͯ͠Δ1BB4ͰͷεϜʔζͳಈ࡞

    View Slide

  43. ࣭໰
    طଘΞϓϦͷ$PNQPTFSҠߦ͸ʁ
    ৽͘͠ಋೖ͢ΔϥΠϒϥϦ͔Βগͮͭ͠Ҡ͠
    ͍ͯ͘ͷͰ΋Α͍ɻ
    ৚݅ʹԠͨ͡ϑϥάͳͲͷઃఆ͸ʁ
    υΩϡϝϯτΛࢀরɻ
    IUUQHFUDPNQPTFSPSHEPD
    TDIFNBNEQBDLBHFMJOLT

    View Slide

  44. ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide