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

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

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

2295fec4d38f59366f983d38628e6ca0?s=128

Hiraku NAKANO

July 16, 2016
Tweet

Transcript

  1. $PNQPTFSΛ଎͘͢ΔͨΊʹ ඞཁͩͬͨ΋ͷ PHPカンファレンス関西2016 基調講演 @Hiraku

  2. ࣗຫΛ͠·͢ʂ

  3. IUUQHJUIVCBXBSETDPNΛ DPVOUSZKBQBO MBOHVBHF1)1 ͰߜΓࠐΈ

  4. None
  5. ͪͳΈʹੈքϨϕϧͩͱ

  6. None
  7. ্ʹ͸্͕͍·͢ʜ

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

     w גࣜձࣾϝϧΧϦͷαʔόʔαΠυΤϯδχΞ w 1)1ྺ͸೥͙Β͍ w झຯ͸$PNQPTFSΛ଎͘͢Δ͜ͱ
  9. ࠓ೔࿩͍ͨ͜͠ͱ w $PNQPTFSͷ֓ཁ w $PNQPTFS͕஗͍ཧ༝ w $PNQPTFSΛ଎͘͢Δ w ຊ౰ʹඞཁͩͬͨ΋ͷ

  10. $PNQPTFSͷ֓ཁ PHPカンファレンス関西2016 基調講演 第一部

  11. None
  12. $PNQPTFS w 1)1ϥΠϒϥϦͷґଘؔ܎ղܾπʔϧ w ࠒʹ։ൃελʔτ OQNͷӨڹ  w 1)1Ҏ߱ʹରԠ Λ੾Γࣺͯ

     w BVUPMPBEFSͷࣗಈੜ੒ w ଟ༷ͳϦϙδτϦܗࣜʹରԠ w ϓϥάΠϯػߏ w IUUQTHFUDPNQPTFSPSH
  13. ύοέʔδϚωʔδϟͰ͸ͳ͍ͷʜʁ w ʰґଘؔ܎ղܾπʔϧʱͱԿނ໊͔৐Γ͕ͨΔ w ʮϏϧυͯ͠ݻΊͯ഑෍͢Δʯͱ͍͏
 ύοέʔδϯάػೳ͕΄ͱΜͲͳ͍ w ֦ுͯ͠࡞ΕΔΑ͏ʹ͸ͳͬͯΔ͚Ͳɺ͋·Γ࢖ΘΕͯͳ͍

  14. $ curl -sL https://getcomposer.org/installer | php (実態はこんな感じ) $ curl -O

    composer https://getcomposer.org/download/1.1.3/composer.phar ࢖͍͸͡ΊΔͷ͸؆୯ IUUQTHFUDPNQPTFSPSHEPXOMPBE QIBSϑΝΠϧΛҰݸμ΢ϯϩʔυ͢Δ͚ͩɻ JOTUBMMFSܦ༝Λਪ঑ʢϋογϡ஋ͷݕূͳͲΛͯ͘͠ΕΔʣ
  15. $ 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ίϚϯυ
  16. 対話形式でプロジェクトをセットアップ $ composer init ライブラリの追加 $ composer require 'vendor/package' ライブラリのアップデート

    $ composer update composer.jsonに従ってまとめてインストール $ composer install Α͘࢖͏αϒίϚϯυ
  17. $PNQPTFS༻ޠ w ύοέʔδίʔυͷ·ͱ·ΓɺϥΠϒϥϦͷ࠶ར༻୯Ґ w ϦϙδτϦෳ਺ͷύοέʔδΛ·ͱΊͨ΋ͷ w Ҏ߱ɺ্هͭͷ୯ޠ͸$PNQPTFS༻ޠͱͯ͠࢖͍·͢

  18. $PNQPTFSͷத৺ࢥ૝

  19. l͢΂ͯ͸ύοέʔδͰ͋Δz

  20. ʁ

  21. ͦͷੲɺ1&"3ͱ͍͏΋ͷ͕͋ͬͨͦ͏ͳ w ͔͠͠QFBSQIQOFUʹͳ͍΋ͷ͕Ұഋ͋ͬͨ w ໺ྑQFBSϦϙδτϦ w [JQϑΝΠϧ഑෍ w 8FCΞϓϦέʔγϣϯ͸1&"3ϥΠϒϥϦͰ͸ͳ͍

  22. 壁 PEARパッケージ PEARパッケージ PEARパッケージ Webアプリ Webアプリ Webアプリ ϥΠϒϥϦΛ࢖ͬͯ Կ͔Λ࡞Δଆ ϥΠϒϥϦఏڙଆ

  23. $PNQPTFS͸ʮ࢖͏͚ͩʯΛڐ͞ͳ͍

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

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

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


    パッケージ ライブラリ使いたい な。。
  27. Composer
 パッケージ Webアプリ (Composerパッケージ) ϥΠϒϥϦΛ࢖ͬͯ Կ͔Λ࡞Δଆ ϥΠϒϥϦఏڙଆ Composer
 パッケージ Composer


    パッケージ 自分がComposerパッケージ にならないと他のComposer パッケージを使えない น
  28. ࡞Δਓͱ࢖͏ਓɺ ͦ͜ʹҧ͍ͳͲͳ͍ʂ

  29. ʜͰ΋ɺͳͥͦΜͳઃܭΛબΜͩͷ͔ʁ

  30. ౷Ұ֓೦͸෺ࣄΛγϯϓϧʹ͢Δ w 6/*9͸ϑΝΠϧͰग़དྷ͍ͯΔ w 8FC͸ϦιʔεͰग़དྷ͍ͯΔ w 3%#͸ू߹͔Βग़དྷ͍ͯΔ w ΦϒδΣΫτࢦ޲ݴޠ͸ΦϒδΣΫτ͔Βग़དྷ͍ͯΔ

  31. ύοέʔδಉ࢜ͷؔ܎ੑͰશ෦ॻ͚Δ w SFRVJSF ඞཁ  w SFRVJSFEFW ։ൃ͚࣌ͩඞཁ  w

    TVHHFTU ͋ͬͨΒػೳ͕૿͑ΔΑ  w DPOqJDU ಉ࣌ʹಈ͔ͤͳ͍Α  w SFQMBDF ஔ͖׵͑ΒΕΔ  w QSPWJEF ػೳΛఏڙ͢Δ composer.jsonに記述。 すべてパッケージなので、
 この記述だけで全部やりくりする。
  32. ͦͯ͠ԿΑΓ΋ʜ

  33. ײછྗ

  34. ୭͔͕ύοέʔδΛ࢖͏ͱ ύοέʔδ͕৽ͨʹݸ࡞ΒΕΔ package package package package package package 便利なpackage package

    package
  35. DPNQPTFSύοέʔδΛҰൠެ։͢Δͷ͸ ඇৗʹ؆୯ w ৹ࠪෆཁ w όʔδϣϯͷࣗಈߋ৽ (JU)VC࿈ܞ

  36. 1BDLBHFTSFHJTUFSFE   7FSTJPOTBWBJMBCMF   1BDLBHFTJOTUBMMFE TJODF      ͪͳΈʹ
 1&"3ొ࿥ύοέʔδ


    ͸
  37. l͢΂ͯ͸ύοέʔδͰ͋Δz w ࠓͰͦ͜௝͘͠ͳ͍͕ɺ1)1ίϛϡχςΟʹ͜ͷ֓೦Λ༌ೖ͠ ͨޭ੷͸େ͖͍ w ͓ͦΒ͘OQNΠϯεύΠϠ w 1)1ίϛϡχςΟͷ੒௕ΛՃ଎ͤͨ͞

  38. $PNQPTFSͷத৺ࢥ૝ もう一つ

  39. lதԝϦϙδτϦΛ͋ͯʹ͠ͳ͍z

  40. $PNQPTFS։ൃ౰࣌ͷࠞಱ w 1&"3͸͕͋ͬͨɺ໺ྑύοέʔδͩΒ͚ w ಠࣗ1&"3ϦϙδτϦఏڙ೿ w [JQஔ͍ͯΔ͚ͩ೿ w HJUIVC೿

  41. ʮશϥΠϒϥϦ࢖͑ΔΑ͏ʹ͠ͳ͍ͱ໾ ʹཱͨͳ͍ʂʯ

  42. ґଘؔ܎ղܾ͸ΫϥΠΞϯταΠυͰ શ෦ߦ͏ packagist.org github.com bitbucket.org どこかのftp サーバー いい感じの ライブラリリスト

  43. 1BDLBHJTU͸ґଘؔ܎ղܾΛશ͘͠ͳ͍ w KTPO͕ஔ͍ͯ͋Δ͚ͩ w શ෦μ΢ϯϩʔυͯ͠ DPNQPTFS͕ղܾ͢Δ w ύοέʔδݕࡧ͢Βੲ͸ ͳ͔ͬͨ

  44. ࠓࢥ͑͹͜ͷબ୒͕ɺύϑΥʔϚϯε
 ໰୊ΛҾ͖ى͖͔͚ͬͩͬͨ͜͢ͷͰ͢

  45. ୈҰ෦ͷ·ͱΊ w $PNQPTFS͸ύοέʔδͱ͍͏౷Ұ֓೦Λ1)1քʹ࣋ͪࠐΜͩ w Ғۀʂʂ w ࡞Δਓͱ࢖͏ਓͷนΛͿͬյͨ͠ w ౰࣌ͷঢ়گ͔Βɺ෼ࢄϦϙδτϦΛલఏͱͨ͠࡞Γʹͳͬͨ

  46. $PNQPTFS͕஗͍ཧ༝ PHPカンファレンス関西2016 基調講演 第二部

  47. $ composer create-project laravel/laravel test --profile ... $PNQPTFSͰ-BSBWFMΛ৽نΠϯετʔϧ

  48. $ composer create-project laravel/laravel test --profile ... [269.36s] $PNQPTFSͰ-BSBWFMΛ৽نΠϯετʔϧ

  49. (*'Ξχϝࡱͬͨ ഒ଎࠶ੜ

  50. None
  51. ஍ཧతͳภΓ w JTTVFͰʮ஗͍ʯͱจ۟Λݴ͍ͬͯΔਓ͕ͨͪݶΒΕΔ w தࠃɺϕτφϜɺؖࠃɺ೔ຊɺ͋ͨΓ w Ϥʔϩούͱ๺ถ͸จ۟Λݴ͏ਓ͕গͳ͍ w ஗͍ͬͯॻ͘ͱʮԶ͸஗͘ײ͡ͳ͍ʯͱ͍͏ΫιϦϓ͕
 ඈΜͰ͘Δʢ஌ΒΜ͕ͳʣ

  52. ͳͥɺΞδΞͰ஗͍ͷ͔

  53. DPNQPTFS͕΍ͬͯΔ͜ͱུ֓  QBDLBHJTUPSH͔Βύοέʔδ৘ใΛऔͬͯ͘Δ  ґଘؔ܎Λղܾ͠ɺඞཁͳύοέʔδΛ֬ఆͤ͞Δ  ओʹ HJUIVCDPN͔ΒύοέʔδຊମΛऔͬͯ͘Δ  ద੾ʹ഑ஔΛߦ͍ɺBVUPMPBEQIQΛ࡞੒͢Δ

  54. HJUIVCDPN QBDLBHJTUPSH

  55. ԕ͍

  56. ωοτϫʔΫ଎౓ͷͭͷࢦඪ w εϧʔϓοτʢଠ͞ʣ w ୯Ґ࣌ؒ͋ͨΓૹ৴Ͱ͖Δσʔλྔ w ճઢΛଋͶΕ͹্ݶͳ͘ଠ͘Ͱ͖Δ w ϨΠςϯγʢ஗Ԇʣ w

    ߦͬͯؼͬͯ͘Δ·Ͱͷ࣌ؒ w ޫͷ଎౓ʹ੍໿͞ΕΔʢޫϑΝΠόʔͷதΛ఻ΘΔ଎౓ʣ 復習しましょう
  57. ڑ཭ʹൺྫͯ͠஗͍ ϨΠςϯγʹහײͳ࡞ΓΛ͍ͯ͠Δ͔Β

  58. ޫͷ଎౓ͷݶք w ਅۭதͷޫͷ଎౓͕໿ສLNT w ޫϑΝΠόʔதͷޫͷ଎౓͕ສLNT w ૹ৴͢ΔσʔλྔʹؔΘΒͣɺඞͣ͜ͷ఻೻࣌ؒ͸͔͔Δ

  59. HJUIVCDPN͔Βͷ
 [JQμ΢ϯϩʔυͷ৔߹

  60. ໿8000km

  61. ύέοτͷҠಈڑ཭ w θϩ͔Β)5514௨৴͢Δͱɺύέοτͷԟ෮͕ճൃੜ͢Δ w 5$1ͷϋϯυγΣΠΫͰԟ෮ w 5-4ͷϋϯυγΣΠΫͰԟ෮ w )551ຊମͰԟ෮ w

    ̍ճϦμΠϨΫτ͢Δͱߋʹഒ શ෦Ͱԟ෮  w BQJHJUIVCDPN͔ΒDPEFMPBEHJUIVCDPNʹϦμΠϨΫτͯ͠Δ
  62. ໿8000km Λ8ԟ෮

  63. ஍ٿ3.2प෼ 128,000km
 =஍ٿ3.2प෼ https://flic.kr/p/7icRw2

  64. composer͸͜ΕΛ
 શzipʹରͯ͠ߦ͍ͬͯΔ

  65. ͦΕͧΕ͕ ஍ٿ3.2प෼

  66. update࣌͸͜Εʹ packagist.orgͱͷ௨৴΋௥Ճ

  67. ύοέʔδݸθϩ͔ΒΠϯετʔϧ࣌ ͷڑ཭֓ࢉ w QBDLBHJTUPSHͷKTPOϑΝΠϧμ΢ϯϩʔυ w )5514 ԟ෮ ✕ w )551

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

    ✕ ✕ ສLN ஍ٿप Ψϥεதͷޫ଎׵ࢉͰඵ w தܧػثͳͲଞʹ΋஗ԆཁҼ͸͋ΔͷͰɺࡶʹഒ͙Β͍͔͔Δͱ͢ΔͱͦΕ ͚ͩͰ෼ඵͱ͔ʹͳΔ w ͔͠΋଴͍ͬͯΔؒɺDPNQPTFS͸Կ΋͠ͳ͍ʢγϯάϧεϨουʣ
  69. ஍ٿ3.2प෼ ύοέʔδ50ݸͰ ஍ٿ220प෼ https://flic.kr/p/7icRw2

  70. ͦΕͰ΋ɺޫ͕΋ͬͱ଎͔ͬͨΒɺ Composer͸஗͘ͳΒͳ͔ͬͨ

  71. ޫ͕஗͍͔ΒComposer͕஗͍ͷͩ

  72. ʜͱ͍͏ͷ͸൒෼ωλͳΜ͚ͩͲɺ ϨΠςϯγͷӨڹ͸࣮ࡍେ͖͍

  73. $PNQPTFSͷ࣮૷ͷ໰୊ w pMF@HFU@DPOUFOUT IUUQTετϦʔϜϥούʔͷར༻ w )551࣌୅ͷ࣮૷ w ίωΫγϣϯΛຖճ࡞Γͳ͓͢ΊͬͪΌඇޮ཰ w )551ͷޮ཰Խख๏Λશ͘࢖͍ͬͯͳ͍

  74. தԝϦϙδτϦΛ͋ͯʹ͠ͳ͍ w QBDLBHJTUPSH͸ґଘؔ܎ղܾΛ͠ͳ͍ w ֤஍͔ΒϦϙδτϦ৘ใΛ͔͖ूΊͯ͘Δ w QBDLBHJTUଆͰ͋Δఔ౓ґଘؔ܎Λղܾ͠ɺ·ͱΊͯૹͬͯ͘ ΕΕ͹΋͏গ͠ϚγʹͳΔͷ͕ͩɻɻ

  75. ୈೋ෦ͷ·ͱΊ w $PNQPTFSͷ஗͞͸௨৴ͷϨΠςϯγʹහײͳ࡞Γ͔ͩΒ w ΞδΞ͸஍ཧతʹෆརͰ͋Γɺಛʹ஗͍ w ஍ٿप΋ͯͯ͠෼ఔ౓͔͔͔͠Βͳ͍ͬͯɺ
 ٯʹ͍͢͝ΑͶ

  76. ʰͳͥ୭΋௚͞ͳ͍ͷʁʱ • ϝΠϯ։ൃऀ͸ϕϧΪʔͷਓ • ஗͞Λ࣮ײͰ͖ͳ͍͠ɺ஫ྗ͞Εͯͳ͍ • ௚ͦ͏ͱͨ͠ਓ͸΋ͪΖΜࠓ·Ͱ΋͍͚ͨͲɺͳ࣮ͥݱ͠ͳ͔ͬ ͨͷ͔ɺ͜Ε͔Βઆ໌͠·͢

  77. $PNQPTFSΛ଎͘͢Δ PHPカンファレンス関西2016 基調講演 第三部

  78. ωοτϫʔΫ଎౓ͷͭͷࢦඪ w εϧʔϓοτʢଠ͞ʣ w ୯Ґ࣌ؒ͋ͨΓૹ৴Ͱ͖Δσʔλྔ w ճઢΛଋͶΕ͹্ݶͳ͘ଠ͘Ͱ͖Δ w ϨΠςϯγʢ஗Ԇʣ w

    ߦͬͯؼͬͯ͘Δ·Ͱͷ࣌ؒ w ޫͷ଎౓ʹ੍໿͞ΕΔʢޫϑΝΠόʔͷதΛ఻ΘΔ଎౓ʣ 復習しましょう
  79. ϨΠςϯγ͸Լ͛ΒΕͳ͍ ΋͏े෼଎͍ w ύέοτͷҠಈڑ཭Λ୹͘͠ɺӨڹΛආ͚Δ͔͠ͳ͍ w ͨͱ͑͹ɺແବͳԟ෮ΛݮΒ͢ w εϧʔϓοτʹ͸༨༟͕͋Δ͜ͱ͕ଟ͍ w Ұؾʹ·ͱΊͯૹΔ΂͖

  80. DPNQPTFSΛ଎͘͢ΔͨΊʹ w QBDLBHJTUPSH΍HJUIVCDPNΛۙ͘ʹ࣋ͬͯ͘Δ w ແବͳύέοτԟ෮ΛݮΒ͢ w ଴ͪ࣌ؒΛ༗ޮ׆༻͢Δ ฒྻμ΢ϯϩʔυ  w

    ޫΛ଎͘͢ΔˡແཧΆ
  81. DPNQPTFSΛ଎͘͢ΔͨΊʹ w QBDLBHJTUPSH΍HJUIVCDPNΛۙ͘ʹ࣋ͬͯ͘Δ w ແବͳύέοτԟ෮ΛݮΒ͢ w ଴ͪ࣌ؒΛ༗ޮ׆༻͢Δ ฒྻμ΢ϯϩʔυ  w

    ޫΛ଎͘͢ΔˡແཧΆ
  82. None
  83. QBDLBHJTUPSHͷϛϥʔΛ࡞ͬͨ ೥຤͝Ζd w QBDLBHJTUͷશσʔλΛ෼͝ͱʹίϐʔ w ϥΠηϯε໰୊Λආ͚ΔͨΊʹ5SBO1SPYZ͸࢖͍ͬͯͳ͍ w DPOUBDU!QBDLBHJTUPSHʹϝʔϧͯ͠ڐ୚औͬͨ w ͘͞Β714

    $MPVE'MBSFͰ഑৴ w ͨͿΜࠓͷ਺ेഒΞΫηε͕དྷͯ΋ฏؾ
  84. $ composer config -g repos.packagist composer https://packagist.jp ϛϥʔͷ༗ޮԽઃఆ͸ίϚϯυҰߦ

  85. QBDLBHJTUKQͰ଎͘ͳΔ෦෼  QBDLBHJTUPSH͔Βύοέʔδ৘ใΛऔͬͯ͘Δ  ґଘؔ܎Λղܾ͠ɺඞཁͳύοέʔδΛ֬ఆͤ͞Δ  ओʹ HJUIVCDPN͔ΒύοέʔδຊମΛऔͬͯ͘Δ  ద੾ʹ഑ஔΛߦ͍ɺBVUPMPBEQIQΛ࡞੒͢Δ

    w QBDLBHJTUPSHͱͷ௨৴͕ڑ཭ʹͳͬͨͱ͢Δͱ
 ύοέʔδݸͰ஍ٿप෼஍ٿप·ͰݮΔ
  86. ஍ٿ3.2प෼ ஍ٿ220प
 ˣ
 ஍ٿ160प https://flic.kr/p/7icRw2

  87. ͪͳΈʹpackagist͸ߋ৽ස౓͕ߴ͗ͯ͢ɺ ϓϩΩγํࣜͷΩϟογϡ͸ඍົ ϛϥʔํ͕ࣜϕλʔ

  88. HJUIVCͷϛϥʔ͸೉͍͠ w ·ͣαΠζ͕େ͖͍ w QBDLBHJTUPSHͷ+40/ͷதʹ63-͕ϋʔυίʔυ w ϛϥʔ͢Δ͚ͩ͡Όͳͯ͘ॻ͖׵͑ͳ͚Ε͹ͳΒͳ͍ w ෼Ͱಉظ͕ऴΘΒͳ͘ͳΔ w

    ϒϥϯνQVTI͞ΕΔ౓ʹ[JQϑΝΠϧ͕࡞ΒΕΔ w ׂʹ͋Θͳ͍
  89. DPNQPTFSΛ଎͘͢ΔͨΊʹ w QBDLBHJTUPSH΍HJUIVCDPNΛۙ͘ʹ࣋ͬͯ͘Δ w ແବͳύέοτԟ෮ΛݮΒ͢ w ଴ͪ࣌ؒΛ༗ޮ׆༻͢Δ ฒྻμ΢ϯϩʔυ  w

    ޫΛ଎͘͢ΔˡແཧΆ packagist.jpで一部対応
  90. DPNQPTFSΛ଎͘͢ΔͨΊʹ w QBDLBHJTUPSH΍HJUIVCDPNΛۙ͘ʹ࣋ͬͯ͘Δ w ແବͳύέοτԟ෮ΛݮΒ͢ w ଴ͪ࣌ؒΛ༗ޮ׆༻͢Δ ฒྻμ΢ϯϩʔυ  w

    ޫΛ଎͘͢ΔˡແཧΆ packagist.jpで一部対応
  91. ࢖͓͏ʂ,FFQ"MJWF w )551ͷίωΫγϣϯΛ࢖͍·Θ͢ w 5$1ͱ5-4ͷϋϯυγΣΠΫΛΧοτԟ෮෼અ໿Ͱ͖Δ w ϦμΠϨΫτΛফͤ͹ߋʹԟ෮અ໿Ͱ͖Δ w ϛϥʔΛ࢖͍ͬͯͨΒ஍ٿपप

  92. ஍ٿ3.2प෼ ஍ٿ220प ↓ ஍ٿ160प ↓
 ஍ٿ21प https://flic.kr/p/7icRw2

  93. DPNQPTFSΛ଎͘͢ΔͨΊʹ w QBDLBHJTUPSH΍HJUIVCDPNΛۙ͘ʹ࣋ͬͯ͘Δ w ແବͳύέοτԟ෮ΛݮΒ͢ w ଴ͪ࣌ؒΛ༗ޮ׆༻͢Δ ฒྻμ΢ϯϩʔυ  w

    ޫΛ଎͘͢ΔˡແཧΆ packagist.jpで一部対応
  94. ฒྻԽͷޮՌ w ҰؾʹૹͬͯҰؾʹฦͯ͠΋Β͑͹ɺҠಈ࣌ؒΛ࡟ݮͰ͖Δ w ฒྻͳΒ෼ͷʹͳΔͷͰ w ஍ٿप஍ٿप ࣮࣭

  95. ஍ٿ3.2प෼ ஍ٿ220प ↓ ஍ٿ160प ↓
 ஍ٿ21प ↓ ࣮࣭஍ٿ2प https://flic.kr/p/7icRw2

  96. ͜͜·Ͱ΍Ε͹଎͘ͳΔ͸ͣ

  97. Keep-Alive, ฒྻԽ… ͦ͏ɺਖ਼ղ͸ݟ͑ͯΔΜͰ͢Α

  98. ʰComposerຊମΛ௚ͤ͹͍͍͡ΌΜʱ

  99. ಴࠳ͨ͠1VMM3FRVFTU*TTVFͷࢁ

  100. ࠇྺ࢙

  101. DPNQPTFSຊମվળͷน w ௨৴पΓͷṖػೳ͕ଟ্͍ɺ෼ׂ͞Ε͍ͯͳͯ͘࠶࣮૷͢Δ͠ ͔ͳ͍ w QSPYZ HJUIVC HJUMBCͷೝূରԠ w μ΢ϯϩʔυਐḿͷදࣔ

    w Ϣʔβʔ໊ύεϫʔυΛೖྗͤͯ͞ϦτϥΠ w EFHSBEFE.PEF *1Wڧ੍ʁ  w ͜ΕͰޓ׵ੑอͭͷ͸͔֬ʹ໘౗͍͘͞
  102. ͱࢥͬͯͨΒ͜Μͳ࿩͕

  103. composerϓϥάΠϯͰ
 curlԽͰ͖ΔΒ͍͠…

  104. ϓϥάΠϯͳΒຊମʹ
 Ϛʔδ͞Εͳͯ͘΋
 ࢼͯ͠΋Β͑Δ
 ࣮੷΋ੵΊΔ

  105. (ͱ͍͏Θ͚Ͱ࡞ͬͨ)

  106. IJSBLQSFTUJTTJNP

  107. None
  108. QSFTUJTTJNP ೥݄ w DPNQPTFSϓϥάΠϯ w D63-Ͱμ΢ϯϩʔυ͢ΔΑ͏ʹஔ͖׵͑Δ w ,FFQ"MJWFΛ༗ޮԽ͢Δ w DPEFMPBEHJUIVCDPNΛ͍͖ͳΓऔΓʹߦ͘


    ϦμΠϨΫτ࡟ݮ  w Ұ෦DVSM@NVMUJͰฒྻμ΢ϯϩʔυ͢Δ
  109. $ composer global require 'hirak/prestissimo' あとは勝手にinstall/update時に発動して速くなる Πϯετʔϧ͸ίϚϯυҰߦ

  110. ͪͳΈʹฒྻԽΑΓ΋,FFQ"MJWFͷํ͕ ޮՌେ͖͍ l1BSBMMFM*OTUBMMzͱ͔ॻ͍ͨͷ͸
 όζΒͤΔͨΊͷ௼Γ

  111. (*'Ξχϝࡱͬͨ ഒ଎࠶ੜ

  112. ޙ೔ஊ (2016೥1݄26೔)

  113. None
  114. ͳΜ͔GitHubελʔ਺͕500 ௒͑ͦ͏ͳΜ͚ͩͲ…

  115. None
  116. None
  117. ϓϥάΠϯͳΒຊମʹ
 Ϛʔδ͞Εͳͯ͘΋
 ࢼͯ͠΋Β͑Δ
 ࣮੷͸ੵΊͨ

  118. $PNQPTFSຊମ΁΋ɺ1VMM3FRVFTUத w ͳ͔ͳ͔Ϛʔδ͞Εͳ͍ͷͰɺ͍͍ͶԼ͍͞ʂʂ w IUUQTHJUIVCDPNDPNQPTFSDPNQPTFSQVMM

  119. DPNQPTFSΛ଎͘͢ΔͨΊʹ w QBDLBHJTUPSH΍HJUIVCDPNΛۙ͘ʹ࣋ͬͯ͘Δ w ແବͳύέοτԟ෮ΛݮΒ͢ w ଴ͪ࣌ؒΛ༗ޮ׆༻͢Δ ฒྻμ΢ϯϩʔυ  w

    ޫΛ଎͘͢ΔˡແཧΆ packagist.jpで一部対応 prestissimoで解決
  120. ୈࡾ෦ͷ·ͱΊ w ޫ͸଎͘Ͱ͖ͳ͍͚Ͳɺ w ϛϥʔΛ࡞ͬͨΓ w ,FFQ"MJWFͰແବͳԟ෮ΛݮΒͨ͠Γ w ฒྻԽͯ͠Ͳ͔ͬͱૹΔΑ͏ʹ͢Ε͹ w

    ஍ٿपͯͨ͠ͷ͕प෼ͷ࣌ؒͰΑ͘ͳͬͯ଎͘ͳΔΑ
  121. ຊ౰ʹඞཁͩͬͨ΋ͷ PHPカンファレンス関西2016 基調講演 最終部

  122. ೔ຊҰͷ1)1FSʂͱ͔ ஍ٿपΛप·Ͱઅ໿ʂͱ͔ ތେͳ͜ͱΛ࿩͖͚ͯͨ͠Ͳ

  123. ࣮͸ͦΜͳʹ೉͍͜͠ͱ͸ ͍ͯ͠ͳ͍

  124. ٕज़తʹࠔ೉ͩͬͨʁ w DVSM@NVMUJ͸1)1ʹੲ͔Β͋Δ͠ w Կ͔࠶࣮૷ͨ͠Θ͚Ͱ΋ͳ͍ w ,FFQ"MJWFͳΜͯԿ೥લͩΑʂʂ࣌୅͸)551ͩΖʂʂ w લ͔Β͋ͬͨ࠷దԽػೳΛ$PNQPTFSʹద༻͚ͨͩ͠

  125. ਖ਼͍͠΍Γํ͔ͩͬͨʁ w ϨΠςϯγ͕໰୊ͩͱࢥͬͨͷ͸צʢଌఆͯ͠ͳ͍ʣ w ςετۦಈͯ͠ͳ͍͠ճ΋θϩ͔Βॻ͖௚ͯ͠Δ w ϓϥάΠϯܗࣜͰͷ࣮૷͸ɺॏʹμ΢ϯϩʔυॲཧΛ
 ىಈ͍ͯͯ͠ແବ͕ଟ͍

  126. ͔͔࣌ؒΓ͗͢Ͱ͋Δ w ஗͍ͳʔͬͯݴ͍࢝Ί͔ͯΒ
 ೥ܦͬͯΔ w ೥݄͝Ζˠ

  127. ͖ͬͱɺ࣮૷Ͱ͖ͨਓ͸ଞʹ΋͍ͨ͸ͣ

  128. Ͱ΋ɺ୭΋΍Βͳ͔ͬͨ

  129. QSFTUJTTJNPͷ೉͔ͬͨ͠ͱ͜Ζ w $PNQPTFSͷࣄ৘ʹ߹ΘͤΔ w ϢʔβʔͷͳΔ΂͘ଟ͘ΛٹΘͳ͚Ε͹ͳΒͳ͍ w 1)1͸ରԠ w 8JOEPXTϢʔβʔ΋ݟࣺͯͳ͍ w

    ೝূ΍5SBO1SPYZͷαϙʔτ w ઌਐత͗͢ΔϥΠϒϥϦ΋࢖͑ͳ͍
  130. D63-Λ࢖͏ͷ΋ָ͡Όͳ͍Α w D63-͸େ఍ͷ؀ڥͰ࢖͑Δ͕ʜ w MJCDVSMͷόʔδϣϯҧ͍ w 1)1ࣗମͷόʔδϣϯҧ͍ w ૊Έ߹Θ͍ͤͯΔ҉߸ԽϥΠϒϥϦͷछྨ w

    /44 4FDVSF5SBOTQPSU 0QFO44-FUD w ৽͠Ίͷػೳ͸࢖͑Δͱ͸ݶΒͳ͍
  131. QSFTUJTTJNPͷࢥ૝ w શػೳΛ࠶࣮૷͢Δͷ͸ແཧ w ಈ͔ͳ͔ͬͨΒݩͷ࣮૷Λ࢖͑͹͍͍ w ͙Β͍ͷਓ͕଎͘ͳΕ͹े෼ w ͦͷ୅ΘΓ࣮֬ʹΠϯετʔϧՄೳʹ͢Δ໰୊Λى͜͞ͳ͍

  132. ͜ͷམͱ͠ॴΛ୳Δͷʹ೥͔͔ͬͨ

  133. ೉͍͜͠ͱΛ͍ͯ͠ͳ͍͚Ͳ • ΋ͬͱ΋ޮՌͷ͋Δํ๏Λߟ͑Δ • μϝͩͬͨΒଞͷํ๏Λࢼ͠ଓ͚Δ • ͖͋ΒΊͳ͍ => ٕज़ͱ͸ͪΐͬͱҧ͏

  134. ͪΐͬͱ୤ઢ͠·͢

  135. 1)1ͬͯͲ͏͍͏ݴޠͰ͚ͨͬ͠ʁ

  136. #include <stdio.h> int main(void) { printf("Hello, world!"); return 0; }

    $ͷ)FMMP8PSME
  137. package main import "fmt" func main() { fmt.Print("Hello, World!\n") }

    (Pͷ)FMMP8PSME
  138. print "Hello, world!"; 1FSMͷ)FMMP8PSME

  139. Hello, world! 1)1ͷ)FMMP8PSME ?!

  140. $ echo Hello, world! > hello.php $ php hello.php Hello,

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

    (ブラウザで http://localhost:3000/hello.php が読める) ͦͷ··8FCΞϓϦʹͳΔ
  142. ҟৗͳݴޠ w )FMMPXPSME͔Β൒ܘNҎ಺͚ͩҟৗʹ؆୯ w ಛԽ͗͢͠͡ΌͶʁ w ;ͭ͏൚༻ੑΛߟ͑ͯͦΜͳͱ͜Ζʹ஫ྗ͠ͳ͍

  143. ؆୯ͳ8FCΞϓϦΛɺ ຊ౰ʹ ؆୯ʹ࡞ΕΔ

  144. ࢲ͸ͨͩ໰୊Λղܾ͍͚ͨͩ͠ͳΜͰ͢ɻ໰୊Λղܾͯ͠ɼ ͦͷ݁ՌͲ͏ͳ͔ͬͨɼࣗ෼͕࡞ͬͨ΋ͷͰਓʑͷੜ׆͕ Ͳ͏มΘ͔ͬͨΛݟಧ͚Δ͜ͱɼͦΕ͕໨తͳΜͰ͢ɻ 3BTNVT-FSEPSG
 IUUQHJIZPKQOFXTSFQPSU  QBHF

  145. ҒେͳϓϩάϥϚ͸ ͍͍ͩͨࣅͨΑ͏ͳ͜ͱΛ
 Ұ౓͸ൃݴ͍ͯ͠Δ

  146. ্͔࢘ΒΫϏʹ͞Εͳ͍͏ͪʹ࢓ࣄΛย෇͚ ΒΕΕ͹ɺͦΕ͸ʮਖ਼͍͠ʯ1FSMεΫϦϓτ -BSSZ8BMM
 1SPHSBNNJOH1FSM

  147. ࢲ͸໰୊Λղͨ͘Ίʹ$ Λઃܭͨ͠ͷͰ͋ ΓɺԿ͔Λ࣮ূ͢ΔͨΊʹ࡞ͬͨͷͰ͸ͳ͍ #KBSOF4USPVTUSVQ 5IF%FTJHOBOE&WPMVUJPOPG$

  148. "໰୊Λղܾ͔ͨͬͨ͠"

  149. Ҋ֎ɺͦ͏͍͏΋ͷ΋ଟ͍ͷͰ͸ w 1)1͸8FCΞϓϦΛ؆୯ʹ࡞ΔͨΊʹੜ·Εͨ w $PNQPTFS͸౰࣌ͷ1)1ͰϥΠϒϥϦ؅ཧΛ͢ΔͨΊʹ
 ੜ·Εͨ w มͳͱ͜Ζ͍ͬͺ͍͋Δ͠ɺ%*4ΒΕΔ͚Ͳɺ
 ౰ॳͷ໰୊͸ղܾ͍ͯ͠Δ

  150. צҧ͍͍ͯͨ͠ w ͣͬͱɺ༏Εͨιϑτ΢ΣΞ͸εʔύʔΤϯδχΞ͕࡞͍ͬͯ Δͷͩͱࢥ͍ͬͯͨ w ͋ΒΏΔ໰୊͸ɺ͍͔ͭώʔϩʔ͕΍͖ͬͯͯ
 ղܾ͞ΕΔͷͩͱࢥ͍ͬͯͨ w ˠ೥ܦͬͯ΋ղܾ͠ͳ͔ͬͨ

  151. ͨͿΜຊ౰͸ w Կ͔໰୊͕͋ͬͯɺͭΒͯ͘ٽ͍͍ͯΔਓ͕͍ͯɺͦͷதʹ w ໰୊ʹཱͪ޲͔͏ਓ w ໰୊ʹཱͪ޲͔Θͳ͍ਓ ͕͍Δ͚ͩ

  152. ໰୊ʹ௚໘͍ͯ͠Δਓ͔͠ղܾͰ͖ͳ͍ 私は遅く感じない 僕はPHPを書いてない キャッシュしてるから平気 ࿩͕௨͡ͳ͍ʂʂ

  153. ຊ౰ʹඞཁͩͬͨͷ͸ ໰୊ͱ޲͖߹͏͜ͱ

  154. ໰୊Λղ͘ਓʹେ͖ͳҧ͍͸ͳ͍ w ͍·ࣗ෼͕Ͱ͖Δ͜ͱΛ΍Δ w ݁Ռੜ·Εͨ΋ͷ͕ෆ֨޷Ͱ΋ɺ
 ໰୊Λղ͔ͳ͍ΑΓ͸ΑͬΆͲྑ͍ w Ή͠Ζɺ໰୊Λղ͍͍ͯΔ͔ΒҒେͳΤϯδχΞʹͳΕΔΜͩ ͱࢥ͏

  155. ໰୊ʹ޲͖߹͍ͬͯΕ͹ w ͙͢ʹ͸ղܾͰ͖ͳ͍͔΋͠Εͳ͍͚Ͳ w ೥ܦͬͯղܾͷࢳޱ͕Έ͔ͭΔ͜ͱ΋͋Δ͠ w தʹ͸ධՁͯ͘͠ΕΔਓ΋͍Δ͠ w ೔ຊҰʹͳͬͨΓͱ͔ w

    جௐߨԋΛཔ·ΕͨΓͱ͔ w ͨ·ʹ͸͍͍͜ͱ͋ΔΑʂʂ
  156. ࡞Δਓͱ࢖͏ਓ ͦ͜ʹҧ͍ͳͲͳ͍ʂʂ

  157. ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠