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

Composerを速くするために必要だったもの /composer-keynote

Composerを速くするために必要だったもの /composer-keynote

PHPカンファレンス関西2016の基調講演です。

Hiraku NAKANO

July 16, 2016
Tweet

More Decks by Hiraku NAKANO

Other Decks in Technology

Transcript

  1. վΊͯࣗݾ঺հ w த໺୓ w IUUQTUXJUUFSDPN)JSBLV w IUUQTHJUIVCDPNIJSBL w (JU)VCελʔ਺೔ຊҰͷ1)1FS ࠷ۙಘͨশ߸

     w גࣜձࣾϝϧΧϦͷαʔόʔαΠυΤϯδχΞ w 1)1ྺ͸೥͙Β͍ w झຯ͸$PNQPTFSΛ଎͘͢Δ͜ͱ
  2. $PNQPTFS w 1)1ϥΠϒϥϦͷґଘؔ܎ղܾπʔϧ w ࠒʹ։ൃελʔτ OQNͷӨڹ  w 1)1Ҏ߱ʹରԠ Λ੾Γࣺͯ

     w BVUPMPBEFSͷࣗಈੜ੒ w ଟ༷ͳϦϙδτϦܗࣜʹରԠ w ϓϥάΠϯػߏ w IUUQTHFUDPNQPTFSPSH
  3. $ curl -sL https://getcomposer.org/installer | php (実態はこんな感じ) $ curl -O

    composer https://getcomposer.org/download/1.1.3/composer.phar ࢖͍͸͡ΊΔͷ͸؆୯ IUUQTHFUDPNQPTFSPSHEPXOMPBE QIBSϑΝΠϧΛҰݸμ΢ϯϩʔυ͢Δ͚ͩɻ JOTUBMMFSܦ༝Λਪ঑ʢϋογϡ஋ͷݕূͳͲΛͯ͘͠ΕΔʣ
  4. $ composer ______ / ____/___ ____ ___ ____ ____ ________

    _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.1.2 2016-05-31 19:48:11 Usage: command [options] [arguments] Options: -h, --help Display this help message -q, --quiet Do not output any message -V, --version Display this application version --ansi Force ANSI output --no-ansi Disable ANSI output -n, --no-interaction Do not ask any interactive question --profile Display timing and memory usage information --no-plugins Whether to disable plugins. -d, --working-dir=WORKING-DIR If specified, use the given directory as working directory. -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug DPNQPTFSίϚϯυ
  5. 対話形式でプロジェクトをセットアップ $ composer init ライブラリの追加 $ composer require 'vendor/package' ライブラリのアップデート

    $ composer update composer.jsonに従ってまとめてインストール $ composer install Α͘࢖͏αϒίϚϯυ
  6. ʁ

  7. $ composer init ... $ ls composer.json => このjsonファイルを持つ =

    composerパッケージ JOJU͸ʮύοέʔδ࡞੒ʯͷίϚϯυ
  8. $PNQPTFS͸શ෦ύοέʔδͱΈͳ͢ w ϥΠϒϥϦ w ϑϨʔϜϫʔΫ w 1)1 w ֦ுϞδϡʔϧ w

    $PNQPTFSࣗ਎ w ͋ͳ͕ͨ࡞ͬͨ8FCΞϓϦέʔγϣϯ composer.jsonを持っていればパッケージだし、 composer.jsonを持っていなくてもパッケージにできる
  9. Composer
 パッケージ Webアプリ (Composerパッケージ) ϥΠϒϥϦΛ࢖ͬͯ Կ͔Λ࡞Δଆ ϥΠϒϥϦఏڙଆ Composer
 パッケージ Composer


    パッケージ 自分がComposerパッケージ にならないと他のComposer パッケージを使えない น
  10. ύοέʔδಉ࢜ͷؔ܎ੑͰશ෦ॻ͚Δ w SFRVJSF ඞཁ  w SFRVJSFEFW ։ൃ͚࣌ͩඞཁ  w

    TVHHFTU ͋ͬͨΒػೳ͕૿͑ΔΑ  w DPOqJDU ಉ࣌ʹಈ͔ͤͳ͍Α  w SFQMBDF ஔ͖׵͑ΒΕΔ  w QSPWJEF ػೳΛఏڙ͢Δ composer.jsonに記述。 すべてパッケージなので、
 この記述だけで全部やりくりする。
  11. ωοτϫʔΫ଎౓ͷͭͷࢦඪ w εϧʔϓοτʢଠ͞ʣ w ୯Ґ࣌ؒ͋ͨΓૹ৴Ͱ͖Δσʔλྔ w ճઢΛଋͶΕ͹্ݶͳ͘ଠ͘Ͱ͖Δ w ϨΠςϯγʢ஗Ԇʣ w

    ߦͬͯؼͬͯ͘Δ·Ͱͷ࣌ؒ w ޫͷ଎౓ʹ੍໿͞ΕΔʢޫϑΝΠόʔͷதΛ఻ΘΔ଎౓ʣ 復習しましょう
  12. ύοέʔδݸθϩ͔ΒΠϯετʔϧ࣌ ͷڑ཭֓ࢉ w QBDLBHJTUPSHͷKTPOϑΝΠϧμ΢ϯϩʔυ w )5514 ԟ෮ ✕ w )551

    ԟ෮ ✕    w ยಓສLN ϑϥϯεͩͱͯ͠  w HJUIVCDPNͷ[JQμ΢ϯϩʔυ w )5514ϦμΠϨΫτ ԟ෮ ✕ w ยಓઍLN αϯϑϥϯγείͩͱͯ͠
  13. ύοέʔδݸθϩ͔ΒΠϯετʔϧ࣌ ͷڑ཭֓ࢉ LN✕     ✕ ✕ LN✕

    ✕ ✕ ສLN ஍ٿप Ψϥεதͷޫ଎׵ࢉͰඵ w தܧػثͳͲଞʹ΋஗ԆཁҼ͸͋ΔͷͰɺࡶʹഒ͙Β͍͔͔Δͱ͢ΔͱͦΕ ͚ͩͰ෼ඵͱ͔ʹͳΔ w ͔͠΋଴͍ͬͯΔؒɺDPNQPTFS͸Կ΋͠ͳ͍ʢγϯάϧεϨουʣ
  14. ωοτϫʔΫ଎౓ͷͭͷࢦඪ w εϧʔϓοτʢଠ͞ʣ w ୯Ґ࣌ؒ͋ͨΓૹ৴Ͱ͖Δσʔλྔ w ճઢΛଋͶΕ͹্ݶͳ͘ଠ͘Ͱ͖Δ w ϨΠςϯγʢ஗Ԇʣ w

    ߦͬͯؼͬͯ͘Δ·Ͱͷ࣌ؒ w ޫͷ଎౓ʹ੍໿͞ΕΔʢޫϑΝΠόʔͷதΛ఻ΘΔ଎౓ʣ 復習しましょう
  15. DPNQPTFSຊମվળͷน w ௨৴पΓͷṖػೳ͕ଟ্͍ɺ෼ׂ͞Ε͍ͯͳͯ͘࠶࣮૷͢Δ͠ ͔ͳ͍ w QSPYZ HJUIVC HJUMBCͷೝূରԠ w μ΢ϯϩʔυਐḿͷදࣔ

    w Ϣʔβʔ໊ύεϫʔυΛೖྗͤͯ͞ϦτϥΠ w EFHSBEFE.PEF *1Wڧ੍ʁ  w ͜ΕͰޓ׵ੑอͭͷ͸͔֬ʹ໘౗͍͘͞
  16. $ echo Hello, world! > hello.php $ php hello.php Hello,

    world! 1)1͸)FMMPXPSMEΛੈքҰ؆୯ʹॻ͚Δ
  17. $ echo Hello, world! > hello.php $ php -S 0.0.0.0:3000

    (ブラウザで http://localhost:3000/hello.php が読める) ͦͷ··8FCΞϓϦʹͳΔ