Slide 1

Slide 1 text

ࣗ࡞OSSͱPHP7ରԠ ߴ໺ ෱ߊ @fortkle - PHP7 Casual Talks #1

Slide 2

Slide 2 text

ࣗݾ঺հ • @fortkle • Connehito גࣜձࣾ (ϚϚ޲͚αʔϏε mamari) • ੜਮͷPHPer • ࠷ۙͷझຯ͸ɺGoͰWebΞϓϦέʔγϣϯ։ൃ

Slide 3

Slide 3 text

ϝσΟΞ ϢʔβʔࢀՃܕΞϓϦ mamari jp mamari Q ϚϚͷ 3ਓʹ1ਓ ͕ར༻ʂ ࢀরɿGoogle Analytics ݄ؒར༻ऀ 400ສਓ Ҏ্ ϚϚϦ ͸೛৷ɾग़࢈ɾࢠҭͯதͷ ঁੑʹ޲͚ͨϝσΟΞ&ίϛϡχςΟͰ͢ɻ

Slide 4

Slide 4 text

͋Δ೔ͷCTOͱͷձ࿩

Slide 5

Slide 5 text

CTOʮPHP7͍͜͏ʯ @fortkleʮPHP7͍͖·͠ΐ͏ʯ

Slide 6

Slide 6 text

PHP7ಋೖܾఆ

Slide 7

Slide 7 text

CTOʮ͓͠ʂ·ͣ͸͋ͷ؅ཧը໘ͩɻ
 ɹɹɹPHP5.4͔ΒͷҠߦཔΜͩͧʂʯ @fortkleʮ΍Γ·͠ΐ͏ʂ 
 ɹɹɹɹɹ(…ͯ͞ɺͲ͏ͨ͠΋ͷ͔)ʯ

Slide 8

Slide 8 text

PHP7Ҡߦͷน͕… • ѹ౗త @fortkle ͷPHP7ܦݧ஋ෆ଍ • ࣮ࡍʹ࢖͍ͬͯΔطଘΞϓϦέʔγϣϯΛ
 PHP7ʹ৐ͤ׵͑ͨ͜ͱ͕ͳ͔ͬͨ • Կ͔ੜ͚ᩴͰ΋͋Ε͹1౓ࢼ͠t(…

Slide 9

Slide 9 text

͍΍ɺੜ͚ᩴͳΒ͋Δ…!

Slide 10

Slide 10 text

ࣗ࡞OSSͷ৘ใڞ༗πʔϧ

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

owl/owl • ࣗ࡞ͨ͠OSSͷ৘ใڞ༗πʔϧ (Laravel੡) • ex. ) Qiita:Team, esa.io, Docbase …etc • ϝϞπʔϧͱͯ͠Evernoteͷ୅ΘΓʹݸਓ࢖༻ • AWS্Ͱಈ͔ͯ͠ຖ೔࢖͍ͬͯΔ • https://github.com/owl/owl

Slide 15

Slide 15 text

͜ΕΛPHP7ʹ৐ͤ׵͑ʂ OSSੜ͚ᩴϝιου(Ծ)

Slide 16

Slide 16 text

ͱ͍͏༁Ͱ ࣗ࡞OSSͷPHP7ରԠ

Slide 17

Slide 17 text

owlͷঢ়گ • Laravel 5.0.33 • Server • CentOS6.5 • PHP5.4 • SQLite3 • Apache + mod_php

Slide 18

Slide 18 text

PHP7৐ͤ׵͑5ͭͷϙΠϯτ 1. ૬खΛ஌ΔɺΰʔϧΛܾΊΔ 2. ؀ڥͷίʔυԽ 3. ϥΠϒϥϦɺϞδϡʔϧͷରԠঢ়گΛνΣοΫ 4. ΞϓϦ෦෼ͷରԠঢ়گΛνΣοΫ 5. ςετΛճ͢

Slide 19

Slide 19 text

1. ૬खΛ஌ΔɺΰʔϧΛܾΊΔ

Slide 20

Slide 20 text

1. ૬खΛ஌ΔɺΰʔϧΛܾΊΔ • PHP7Ͱͷมߋ఺ɺޙํޓ׵ੑͷཧղ • ʮPHP 5.6.x ͔Β PHP 7.0.x ΁ͷҠߦʯ
 http://php.net/manual/ja/migration70.php
 • ʮPHP7ͰมΘΔ͜ͱ ——ݴޠ࢓༷ͱΤϯδϯͷվળϙΠϯτʯ
 http://www.slideshare.net/hnw/phpcon-kansai20150530

Slide 21

Slide 21 text

1. ૬खΛ஌ΔɺΰʔϧΛܾΊΔ • ࠓճ͸ʮPHP7Β͠͞ʯ͸ٻΊͣɺ৐ͤ׵͑ࣗ ମΛΰʔϧʹ͠଎౓޲্Λ໨తͱͨ͠ PHP7Β͠͞ ߴ PHP7Β͠͞ ௿ ɾͨͩ৐ͤ׵͚͑ͨͩ ɾPHP7Ͱొ৔ͨ͠৽͍͠ԋࢉࢠɺߏจͷ׆༻ ɾεΧϥʔ஋ͷܕએݴɺ໭Γ஋ͷܕએݴ ɾແ໊Ϋϥε ɾNull߹ମԋࢉࢠɺӉ஦ધԋࢉࢠ ← ɹɹɹࠓճ͸ͪ͜Βʂ

Slide 22

Slide 22 text

2. ؀ڥͷίʔυԽ

Slide 23

Slide 23 text

2. ؀ڥͷίʔυԽ • PHP7ͰऴΘΓͰ͸ͳ͍ • 8,9ͱࠓޙ΋ܧଓతʹVerUp͢Δඞཁ͕͋Δ • VerUpʹରͯ͠ʢมԽʹରͯ͠ʣରԠ͢ΔͨΊ ʹඞཁͳͷ͕ʮ؀ڥͷίʔυԽʯɻ
 ߏ੒؅ཧΛ͠Α͏ɻ

Slide 24

Slide 24 text

2. ؀ڥͷίʔυԽ • Մಡੑɺอकੑɺႈ౳ੑ • ϓϩϏδϣχϯάπʔϧΛ׆༻͢Δ • Ansible • ʮInstall PHP7 on CentOS7 by Ansibleʯ
 http://www.slideshare.net/DQNEO/install-php7-on-centos7-by-ansible • Itamae • ձࣾͰͪ͜ΒΛ࢖ͬͯΔͷͰowl͸ͪ͜Β • chefΑΓγϯϓϧ • PHP7.0.2ɺSQlite3ɺnginx+PHP-FPMɺCentOS7؀ڥΛߏங

Slide 25

Slide 25 text

3. ϥΠϒϥϦɺϞδϡʔϧͷ ରԠঢ়گΛνΣοΫ

Slide 26

Slide 26 text

3. ϥΠϒϥϦɺϞδϡʔϧͷ
 ରԠঢ়گΛνΣοΫ • ϥΠϒϥϦ,WAFͷରԠঢ়گ • ʮ˓˓ PHP7ʯͰάάΕ͹େମ෼͔Δ • ओཁͳ΋ͷ͸طʹPHP7ରԠࡁΈ • ϞδϡʔϧͷରԠঢ়گ • ঢ়گΛ·ͱΊ͍ͯΔPJT͕͋Δ
 https://github.com/gophp7/gophp7-ext/wiki/ extensions-catalog

Slide 27

Slide 27 text

4. ΞϓϦ෦෼ͷରԠঢ়گΛ νΣοΫ

Slide 28

Slide 28 text

4. ΞϓϦ෦෼ͷରԠঢ়گΛνΣοΫ • αʔόʔɺϞδϡʔϧɺϥΠϒϥϦɺWAFͰ໰ ୊ͳͯ͘΋ɺΞϓϦ͕PHP7ඇରԠͳΒҙຯ͕ ແ͍ • खͬऔΓૣ͘PHP7ରԠΛνΣοΫ͢Δʹ͸
 php7cc Λ࢖͏ͷ͕Φεεϝ
 https://github.com/sstalle/php7cc

Slide 29

Slide 29 text

4. ΞϓϦ෦෼ͷରԠঢ়گΛνΣοΫ • php7cc • PHP7ͱͷద߹ੑΛνΣοΫͯ͘͠ΕΔ // μ΢ϯϩʔυ $ wget https://github.com/sstalle/php7cc/releases/ download/1.0.2/php7cc.phar 
 // νΣοΫ(ϑΝΠϧ or ϑΥϧμΛ౉͢) $ php php7cc.phar --extensions=php ./index.php

Slide 30

Slide 30 text

4. ΞϓϦ෦෼ͷରԠঢ়گΛνΣοΫ • νΣοΫର৅ͷ index.php hoge; } }

Slide 31

Slide 31 text

4. ΞϓϦ෦෼ͷରԠঢ়گΛνΣοΫ • ݁Ռ $ php php7cc.phar --extensions=php ./index.php File: /Users/fortkle/Private/owl/index.php > Line 3: Reserved name "string" used as a class, interface or trait name class String { } > Line 7: PHP 4 constructors are now deprecated public function String() { }

Slide 32

Slide 32 text

4. ΞϓϦ෦෼ͷରԠঢ়گΛνΣοΫ • ͪͳΈʹ… • owl Ͱ΋࣮ߦͨ͠ͱ͜Ζɺमਖ਼͕ඞཁͳՕॴ ͸ 0 Ͱͨ͠ʢPHP7ͷޙํޓ׵ੑߴ͍ʂʣ

Slide 33

Slide 33 text

5. ςετΛճ͢

Slide 34

Slide 34 text

5. ςετΛճ͢ • 4. ͷphp7ccͳͲΛ׆༻ͯ͠PHP7ʹରԠͰ͖ͯ ͍ͳ͍ίʔυΛमਖ਼͢Δ • ςετΛ࣮ߦ͠ɺΞϓϦέʔγϣϯ͕յΕ͍ͯ ͳ͍͔ɺ͓͔͠ͳͱ͜Ζ͸ͳ͍͔νΣοΫ • TravisCIͳΒ1ߦ෇͚Ճ͑Δ͚ͩͰPHP7ରԠՄ $ cat .travis.yml language: php php:
 - 5.6 - 7.0

Slide 35

Slide 35 text

Ҏ্ͷεςοϓΛܦͯ…

Slide 36

Slide 36 text

Ҡߦ׬ྃʂʂʂ • ໿40~50%΄ͲϖʔδಡΈࠐΈ଎౓͕վળʂ Buildin Server + Laravel DebugbarͰ5ճͣͭܭଌ

Slide 37

Slide 37 text

Ҡߦ׬ྃʂʂʂ Buildin Server + Laravel DebugbarͰ5ճͣͭܭଌ

Slide 38

Slide 38 text

Ҡߦ׬ྃʂʂʂ • PHP7Ҡߦͷܦݧ஋ήοτʂ • PHP7 Support ͷowlΛϦϦʔεʂ

Slide 39

Slide 39 text

ͦͷޙ…

Slide 40

Slide 40 text

ಉ༷ͷखॱͰ؅ཧը໘ͷPHP7Ҡߦ • खॱ͸શ͘มΘΒͳ͍ • ΰʔϧ͕ܾ·͍ͬͯΔͷͰແཧͳ͘Ͱ͖Δ • ϨΠϠʔຖʹஸೡʹ࡞ۀ͍ͯ͘͠ख๏ͳͷͰ
 ҆৺Ͱ͖Δ( ˘ω˘)ţźō • ܧଓతͳվળ͕Ͱ͖ΔʢPHP7͕ۀ຿Ͱ࢖͑ͯϞνϕʔ γϣϯ͕͕͋Δʂʂʂˡॏཁʣ

Slide 41

Slide 41 text

·ͱΊ • झຯ(OSS)ͰϦεΫΛ๯͠ɺۀ຿ʹͦΕΛؐݩ͢Δ ʮOSSੜ͚ᩴϝιουʯ͕ྑ͍ • PHP7Ҡߦ͸ϨΠϠʔຖʹ෼͚ͯςετ͍͚ͯ͠͹ ൺֱత༰қʢPHP7Β͠͞Λ௥ٻ͢Δͱ೉қ౓ˢʣ • PHP7Λۀ຿Ͱ΋࢖͑Δͱָ͍͠ ✌('ω')✌

Slide 42

Slide 42 text

͓͠·͍