Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

ࣗຫΛ͠·͢ʂ

Slide 3

Slide 3 text

IUUQHJUIVCBXBSETDPNΛ DPVOUSZKBQBO MBOHVBHF1)1 ͰߜΓࠐΈ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

Slide 6

Slide 6 text

ͪͳΈʹੈքϨϕϧͩͱ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

্ʹ͸্͕͍·͢ʜ

Slide 9

Slide 9 text

վΊͯࣗݾ঺հ w த໺୓ w IUUQTUXJUUFSDPN)JSBLV w IUUQTHJUIVCDPNIJSBL w (JU)VCελʔ਺೔ຊҰͷ1)1FS ࠷ۙಘͨশ߸ w גࣜձࣾϝϧΧϦͷαʔόʔαΠυΤϯδχΞ w 1)1ྺ͸೥͙Β͍ w झຯ͸$PNQPTFSΛ଎͘͢Δ͜ͱ

Slide 10

Slide 10 text

ࠓ೔࿩͍ͨ͜͠ͱ w $PNQPTFSͷ֓ཁ w $PNQPTFS͕஗͍ཧ༝ w $PNQPTFSΛ଎͘͢Δ w ຊ౰ʹඞཁͩͬͨ΋ͷ

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

$PNQPTFS w 1)1ϥΠϒϥϦͷґଘؔ܎ղܾπʔϧ w ࠒʹ։ൃελʔτ OQNͷӨڹ w 1)1Ҏ߱ʹରԠ Λ੾Γࣺͯ w BVUPMPBEFSͷࣗಈੜ੒ w ଟ༷ͳϦϙδτϦܗࣜʹରԠ w ϓϥάΠϯػߏ w IUUQTHFUDPNQPTFSPSH

Slide 14

Slide 14 text

ύοέʔδϚωʔδϟͰ͸ͳ͍ͷʜʁ w ʰґଘؔ܎ղܾπʔϧʱͱԿނ໊͔৐Γ͕ͨΔ w ʮϏϧυͯ͠ݻΊͯ഑෍͢Δʯͱ͍͏
 ύοέʔδϯάػೳ͕΄ͱΜͲͳ͍ w ֦ுͯ͠࡞ΕΔΑ͏ʹ͸ͳͬͯΔ͚Ͳɺ͋·Γ࢖ΘΕͯͳ͍

Slide 15

Slide 15 text

$ curl -sL https://getcomposer.org/installer | php (実態はこんな感じ) $ curl -O composer https://getcomposer.org/download/1.1.3/composer.phar ࢖͍͸͡ΊΔͷ͸؆୯ IUUQTHFUDPNQPTFSPSHEPXOMPBE QIBSϑΝΠϧΛҰݸμ΢ϯϩʔυ͢Δ͚ͩɻ JOTUBMMFSܦ༝Λਪ঑ʢϋογϡ஋ͷݕূͳͲΛͯ͘͠ΕΔʣ

Slide 16

Slide 16 text

$ 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ίϚϯυ

Slide 17

Slide 17 text

対話形式でプロジェクトをセットアップ $ composer init ライブラリの追加 $ composer require 'vendor/package' ライブラリのアップデート $ composer update composer.jsonに従ってまとめてインストール $ composer install Α͘࢖͏αϒίϚϯυ

Slide 18

Slide 18 text

$PNQPTFS༻ޠ w ύοέʔδίʔυͷ·ͱ·ΓɺϥΠϒϥϦͷ࠶ར༻୯Ґ w ϦϙδτϦෳ਺ͷύοέʔδΛ·ͱΊͨ΋ͷ w Ҏ߱ɺ্هͭͷ୯ޠ͸$PNQPTFS༻ޠͱͯ͠࢖͍·͢

Slide 19

Slide 19 text

$PNQPTFSͷத৺ࢥ૝

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

ʁ

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

$ composer init ... $ ls composer.json => このjsonファイルを持つ = composerパッケージ JOJU͸ʮύοέʔδ࡞੒ʯͷίϚϯυ

Slide 26

Slide 26 text

$PNQPTFS͸શ෦ύοέʔδͱΈͳ͢ w ϥΠϒϥϦ w ϑϨʔϜϫʔΫ w 1)1 w ֦ுϞδϡʔϧ w $PNQPTFSࣗ਎ w ͋ͳ͕ͨ࡞ͬͨ8FCΞϓϦέʔγϣϯ composer.jsonを持っていればパッケージだし、 composer.jsonを持っていなくてもパッケージにできる

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

Composer
 パッケージ Webアプリ (Composerパッケージ) ϥΠϒϥϦΛ࢖ͬͯ Կ͔Λ࡞Δଆ ϥΠϒϥϦఏڙଆ Composer
 パッケージ Composer
 パッケージ 自分がComposerパッケージ にならないと他のComposer パッケージを使えない น

Slide 29

Slide 29 text

࡞Δਓͱ࢖͏ਓɺ ͦ͜ʹҧ͍ͳͲͳ͍ʂ

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

ύοέʔδಉ࢜ͷؔ܎ੑͰશ෦ॻ͚Δ w SFRVJSF ඞཁ w SFRVJSFEFW ։ൃ͚࣌ͩඞཁ w TVHHFTU ͋ͬͨΒػೳ͕૿͑ΔΑ w DPOqJDU ಉ࣌ʹಈ͔ͤͳ͍Α w SFQMBDF ஔ͖׵͑ΒΕΔ w QSPWJEF ػೳΛఏڙ͢Δ composer.jsonに記述。 すべてパッケージなので、
 この記述だけで全部やりくりする。

Slide 33

Slide 33 text

ͦͯ͠ԿΑΓ΋ʜ

Slide 34

Slide 34 text

ײછྗ

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

$PNQPTFSͷத৺ࢥ૝ もう一つ

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

ͳͥɺΞδΞͰ஗͍ͷ͔

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

HJUIVCDPN QBDLBHJTUPSH

Slide 56

Slide 56 text

ԕ͍

Slide 57

Slide 57 text

ωοτϫʔΫ଎౓ͷͭͷࢦඪ w εϧʔϓοτʢଠ͞ʣ w ୯Ґ࣌ؒ͋ͨΓૹ৴Ͱ͖Δσʔλྔ w ճઢΛଋͶΕ͹্ݶͳ͘ଠ͘Ͱ͖Δ w ϨΠςϯγʢ஗Ԇʣ w ߦͬͯؼͬͯ͘Δ·Ͱͷ࣌ؒ w ޫͷ଎౓ʹ੍໿͞ΕΔʢޫϑΝΠόʔͷதΛ఻ΘΔ଎౓ʣ 復習しましょう

Slide 58

Slide 58 text

ڑ཭ʹൺྫͯ͠஗͍ ϨΠςϯγʹහײͳ࡞ΓΛ͍ͯ͠Δ͔Β

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

໿8000km

Slide 62

Slide 62 text

ύέοτͷҠಈڑ཭ w θϩ͔Β)5514௨৴͢Δͱɺύέοτͷԟ෮͕ճൃੜ͢Δ w 5$1ͷϋϯυγΣΠΫͰԟ෮ w 5-4ͷϋϯυγΣΠΫͰԟ෮ w )551ຊମͰԟ෮ w ̍ճϦμΠϨΫτ͢Δͱߋʹഒ શ෦Ͱԟ෮ w BQJHJUIVCDPN͔ΒDPEFMPBEHJUIVCDPNʹϦμΠϨΫτͯ͠Δ

Slide 63

Slide 63 text

໿8000km Λ8ԟ෮

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

ͦΕͧΕ͕ ஍ٿ3.2प෼

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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

Slide 69

Slide 69 text

ύοέʔδݸθϩ͔ΒΠϯετʔϧ࣌ ͷڑ཭֓ࢉ LN✕ ✕ ✕ LN✕ ✕ ✕ ສLN ஍ٿप Ψϥεதͷޫ଎׵ࢉͰඵ w தܧػثͳͲଞʹ΋஗ԆཁҼ͸͋ΔͷͰɺࡶʹഒ͙Β͍͔͔Δͱ͢ΔͱͦΕ ͚ͩͰ෼ඵͱ͔ʹͳΔ w ͔͠΋଴͍ͬͯΔؒɺDPNQPTFS͸Կ΋͠ͳ͍ʢγϯάϧεϨουʣ

Slide 70

Slide 70 text

஍ٿ3.2प෼ ύοέʔδ50ݸͰ ஍ٿ220प෼ https://flic.kr/p/7icRw2

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

ωοτϫʔΫ଎౓ͷͭͷࢦඪ w εϧʔϓοτʢଠ͞ʣ w ୯Ґ࣌ؒ͋ͨΓૹ৴Ͱ͖Δσʔλྔ w ճઢΛଋͶΕ͹্ݶͳ͘ଠ͘Ͱ͖Δ w ϨΠςϯγʢ஗Ԇʣ w ߦͬͯؼͬͯ͘Δ·Ͱͷ࣌ؒ w ޫͷ଎౓ʹ੍໿͞ΕΔʢޫϑΝΠόʔͷதΛ఻ΘΔ଎౓ʣ 復習しましょう

Slide 80

Slide 80 text

ϨΠςϯγ͸Լ͛ΒΕͳ͍ ΋͏े෼଎͍ w ύέοτͷҠಈڑ཭Λ୹͘͠ɺӨڹΛආ͚Δ͔͠ͳ͍ w ͨͱ͑͹ɺແବͳԟ෮ΛݮΒ͢ w εϧʔϓοτʹ͸༨༟͕͋Δ͜ͱ͕ଟ͍ w Ұؾʹ·ͱΊͯૹΔ΂͖

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

No content

Slide 84

Slide 84 text

QBDLBHJTUPSHͷϛϥʔΛ࡞ͬͨ ೥຤͝Ζd w QBDLBHJTUͷશσʔλΛ෼͝ͱʹίϐʔ w ϥΠηϯε໰୊Λආ͚ΔͨΊʹ5SBO1SPYZ͸࢖͍ͬͯͳ͍ w DPOUBDU!QBDLBHJTUPSHʹϝʔϧͯ͠ڐ୚औͬͨ w ͘͞Β714$MPVE'MBSFͰ഑৴ w ͨͿΜࠓͷ਺ेഒΞΫηε͕དྷͯ΋ฏؾ

Slide 85

Slide 85 text

$ composer config -g repos.packagist composer https://packagist.jp ϛϥʔͷ༗ޮԽઃఆ͸ίϚϯυҰߦ

Slide 86

Slide 86 text

QBDLBHJTUKQͰ଎͘ͳΔ෦෼ QBDLBHJTUPSH͔Βύοέʔδ৘ใΛऔͬͯ͘Δ ґଘؔ܎Λղܾ͠ɺඞཁͳύοέʔδΛ֬ఆͤ͞Δ ओʹ HJUIVCDPN͔ΒύοέʔδຊମΛऔͬͯ͘Δ ద੾ʹ഑ஔΛߦ͍ɺBVUPMPBEQIQΛ࡞੒͢Δ w QBDLBHJTUPSHͱͷ௨৴͕ڑ཭ʹͳͬͨͱ͢Δͱ
 ύοέʔδݸͰ஍ٿप෼஍ٿप·ͰݮΔ

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

HJUIVCͷϛϥʔ͸೉͍͠ w ·ͣαΠζ͕େ͖͍ w QBDLBHJTUPSHͷ+40/ͷதʹ63-͕ϋʔυίʔυ w ϛϥʔ͢Δ͚ͩ͡Όͳͯ͘ॻ͖׵͑ͳ͚Ε͹ͳΒͳ͍ w ෼Ͱಉظ͕ऴΘΒͳ͘ͳΔ w ϒϥϯνQVTI͞ΕΔ౓ʹ[JQϑΝΠϧ͕࡞ΒΕΔ w ׂʹ͋Θͳ͍

Slide 90

Slide 90 text

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

Slide 91

Slide 91 text

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

Slide 92

Slide 92 text

࢖͓͏ʂ,FFQ"MJWF w )551ͷίωΫγϣϯΛ࢖͍·Θ͢ w 5$1ͱ5-4ͷϋϯυγΣΠΫΛΧοτԟ෮෼અ໿Ͱ͖Δ w ϦμΠϨΫτΛফͤ͹ߋʹԟ෮અ໿Ͱ͖Δ w ϛϥʔΛ࢖͍ͬͯͨΒ஍ٿपप

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

ฒྻԽͷޮՌ w ҰؾʹૹͬͯҰؾʹฦͯ͠΋Β͑͹ɺҠಈ࣌ؒΛ࡟ݮͰ͖Δ w ฒྻͳΒ෼ͷʹͳΔͷͰ w ஍ٿप஍ٿप ࣮࣭

Slide 96

Slide 96 text

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

Slide 97

Slide 97 text

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

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

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

Slide 100

Slide 100 text

಴࠳ͨ͠1VMM3FRVFTU*TTVFͷࢁ

Slide 101

Slide 101 text

ࠇྺ࢙

Slide 102

Slide 102 text

DPNQPTFSຊମվળͷน w ௨৴पΓͷṖػೳ͕ଟ্͍ɺ෼ׂ͞Ε͍ͯͳͯ͘࠶࣮૷͢Δ͠ ͔ͳ͍ w QSPYZ HJUIVC HJUMBCͷೝূରԠ w μ΢ϯϩʔυਐḿͷදࣔ w Ϣʔβʔ໊ύεϫʔυΛೖྗͤͯ͞ϦτϥΠ w EFHSBEFE.PEF *1Wڧ੍ʁ w ͜ΕͰޓ׵ੑอͭͷ͸͔֬ʹ໘౗͍͘͞

Slide 103

Slide 103 text

ͱࢥͬͯͨΒ͜Μͳ࿩͕

Slide 104

Slide 104 text

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

Slide 105

Slide 105 text

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

Slide 106

Slide 106 text

(ͱ͍͏Θ͚Ͱ࡞ͬͨ)

Slide 107

Slide 107 text

IJSBLQSFTUJTTJNP

Slide 108

Slide 108 text

No content

Slide 109

Slide 109 text

QSFTUJTTJNP ೥݄ w DPNQPTFSϓϥάΠϯ w D63-Ͱμ΢ϯϩʔυ͢ΔΑ͏ʹஔ͖׵͑Δ w ,FFQ"MJWFΛ༗ޮԽ͢Δ w DPEFMPBEHJUIVCDPNΛ͍͖ͳΓऔΓʹߦ͘
 ϦμΠϨΫτ࡟ݮ w Ұ෦DVSM@NVMUJͰฒྻμ΢ϯϩʔυ͢Δ

Slide 110

Slide 110 text

$ composer global require 'hirak/prestissimo' あとは勝手にinstall/update時に発動して速くなる Πϯετʔϧ͸ίϚϯυҰߦ

Slide 111

Slide 111 text

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

Slide 112

Slide 112 text

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

Slide 113

Slide 113 text

ޙ೔ஊ (2016೥1݄26೔)

Slide 114

Slide 114 text

No content

Slide 115

Slide 115 text

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

Slide 116

Slide 116 text

No content

Slide 117

Slide 117 text

No content

Slide 118

Slide 118 text

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

Slide 119

Slide 119 text

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

Slide 120

Slide 120 text

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

Slide 121

Slide 121 text

ୈࡾ෦ͷ·ͱΊ w ޫ͸଎͘Ͱ͖ͳ͍͚Ͳɺ w ϛϥʔΛ࡞ͬͨΓ w ,FFQ"MJWFͰແବͳԟ෮ΛݮΒͨ͠Γ w ฒྻԽͯ͠Ͳ͔ͬͱૹΔΑ͏ʹ͢Ε͹ w ஍ٿपͯͨ͠ͷ͕प෼ͷ࣌ؒͰΑ͘ͳͬͯ଎͘ͳΔΑ

Slide 122

Slide 122 text

ຊ౰ʹඞཁͩͬͨ΋ͷ PHPカンファレンス関西2016 基調講演 最終部

Slide 123

Slide 123 text

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

Slide 124

Slide 124 text

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

Slide 125

Slide 125 text

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

Slide 126

Slide 126 text

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

Slide 127

Slide 127 text

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

Slide 128

Slide 128 text

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

Slide 129

Slide 129 text

Ͱ΋ɺ୭΋΍Βͳ͔ͬͨ

Slide 130

Slide 130 text

QSFTUJTTJNPͷ೉͔ͬͨ͠ͱ͜Ζ w $PNQPTFSͷࣄ৘ʹ߹ΘͤΔ w ϢʔβʔͷͳΔ΂͘ଟ͘ΛٹΘͳ͚Ε͹ͳΒͳ͍ w 1)1͸ରԠ w 8JOEPXTϢʔβʔ΋ݟࣺͯͳ͍ w ೝূ΍5SBO1SPYZͷαϙʔτ w ઌਐత͗͢ΔϥΠϒϥϦ΋࢖͑ͳ͍

Slide 131

Slide 131 text

D63-Λ࢖͏ͷ΋ָ͡Όͳ͍Α w D63-͸େ఍ͷ؀ڥͰ࢖͑Δ͕ʜ w MJCDVSMͷόʔδϣϯҧ͍ w 1)1ࣗମͷόʔδϣϯҧ͍ w ૊Έ߹Θ͍ͤͯΔ҉߸ԽϥΠϒϥϦͷछྨ w /44 4FDVSF5SBOTQPSU 0QFO44-FUD w ৽͠Ίͷػೳ͸࢖͑Δͱ͸ݶΒͳ͍

Slide 132

Slide 132 text

QSFTUJTTJNPͷࢥ૝ w શػೳΛ࠶࣮૷͢Δͷ͸ແཧ w ಈ͔ͳ͔ͬͨΒݩͷ࣮૷Λ࢖͑͹͍͍ w ͙Β͍ͷਓ͕଎͘ͳΕ͹े෼ w ͦͷ୅ΘΓ࣮֬ʹΠϯετʔϧՄೳʹ͢Δ໰୊Λى͜͞ͳ͍

Slide 133

Slide 133 text

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

Slide 134

Slide 134 text

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

Slide 135

Slide 135 text

ͪΐͬͱ୤ઢ͠·͢

Slide 136

Slide 136 text

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

Slide 137

Slide 137 text

#include int main(void) { printf("Hello, world!"); return 0; } $ͷ)FMMP8PSME

Slide 138

Slide 138 text

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

Slide 139

Slide 139 text

print "Hello, world!"; 1FSMͷ)FMMP8PSME

Slide 140

Slide 140 text

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

Slide 141

Slide 141 text

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

Slide 142

Slide 142 text

$ echo Hello, world! > hello.php $ php -S 0.0.0.0:3000 (ブラウザで http://localhost:3000/hello.php が読める) ͦͷ··8FCΞϓϦʹͳΔ

Slide 143

Slide 143 text

ҟৗͳݴޠ w )FMMPXPSME͔Β൒ܘNҎ಺͚ͩҟৗʹ؆୯ w ಛԽ͗͢͠͡ΌͶʁ w ;ͭ͏൚༻ੑΛߟ͑ͯͦΜͳͱ͜Ζʹ஫ྗ͠ͳ͍

Slide 144

Slide 144 text

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

Slide 145

Slide 145 text

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

Slide 146

Slide 146 text

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

Slide 147

Slide 147 text

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

Slide 148

Slide 148 text

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

Slide 149

Slide 149 text

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

Slide 150

Slide 150 text

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

Slide 151

Slide 151 text

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

Slide 152

Slide 152 text

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

Slide 153

Slide 153 text

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

Slide 154

Slide 154 text

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

Slide 155

Slide 155 text

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

Slide 156

Slide 156 text

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

Slide 157

Slide 157 text

࡞Δਓͱ࢖͏ਓ ͦ͜ʹҧ͍ͳͲͳ͍ʂʂ

Slide 158

Slide 158 text

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