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

テストコードが無くてPHP7へのバージョンアップが出来ない?ボットで解決しました!

 テストコードが無くてPHP7へのバージョンアップが出来ない?ボットで解決しました!

PHPカンファレンス仙台2019の発表資料です。

長期運用中スマホゲームのサーバで使用しているPHPを短期間でバージョンアップしたことについて紹介します。
テストコードが無いプロジェクトでどのようにしてPHP5.6からPHP7.2にバージョンアップを成功させたか、また、その後のパフォーマンス向上について紹介します。

#phpconsen

CyberAgent SGE Engineer

January 26, 2019
Tweet

More Decks by CyberAgent SGE Engineer

Other Decks in Technology

Transcript

  1. S 9 S 4 S G 3P 2 2 4

    1 71 02 S G E8 G 4 4 4 8 H
  2. d E • R ( G E • 6 )

    3 • 0 G 2 ( (VJME WT (VJMEͷུɻΦϯϥΠϯήʔϜͰϓϨΠϠʔͷूஂಉ͕࢜ରઓΛ͢Δ
  3. • 32 6 0 ) 0 ) • 6 )

    0 ) ( )      
  4. n • n • • e6 6P • 3. 215

    • n • L d 6 6 • b6T LPW 6 C • T 6 C • t 6 6 • LPW 6 C • 6 6 • n o • H • 7 • n i g L • i • 6 6 n r C • Mg I n
  5. ma H i • P in j e h g

    • P • 66 2 6 1 27 0 / 1. 5 6. 2 • P • 66 2 6 1 27 0 / 1. 5 6. 2 • P • 66 2 6 1 27 0 / 1. 5 6. 2 • i ol h g :
  6. _ e a • ) gcH P • ) gcH

    P P H H jil • -7 : - • ( # / 4 0 7 #./ /- /.# 0 7 #./ /- /.# -7 : - 7 : Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3 ) gcH P hd
  7. • ( 0 ( 0 • ( 0 ( 0

    a • / / # ( :( ( 0.7( 0 # 7 ( # / 0.7( 0 # 7 ( # ( 0 ( Deprecated: Non-static method foo::bar() should not be called statically in - on line 8 ( 0 ( 0 -: 0 )(7
  8. T • • • • Declaration of %s::%s() should be

    compatible with that of %s::%s() T
  9. IP • / 7: 7 HR ) G • (

    N A 7 HR • 2:: 2 70: .7 . . 7/: 7 / 7: 2 In PHP 7.2.0 count(NULL) returns a warning: Warning: count(): Parameter must be an array or an object that implements Countable
  10. • 7 : • 0 / 0 . - /

    0# 0 / . / 0# 0 / . . 0 . 0 0
  11. • . HE • :A P H . H7 •

    / / / . / / . HE // .
  12. 3 5G 3 5G 1 . . 1 4 2

    4 ( ) 4 . G ( 4 . 0 ). 0 G 2 0 2 3 G .v1 4
  13. y eg ysuv • uv • ) (GC : •

    Q • CC E GC : • E : C • d 0 M g • /D c g • y w • n t )E) JiJi v W Pg • c v j n • mo t JiJi Ohg • LaP • w • p vru R LO • p x y Sg • • UQ l M Jg3: . R
  14. • • G I • [ { ... }, {

    ... }, ... ]   JSON     
  15. • • G I • [ { ... }, {

    ... }, ... ]   JSON      
  16. • • G I • [ { ... }, {

    ... }, ... ]  % JSON! +   *  ) ( #'&$  JSON"* %
  17.   •      master GvG

    slave GvG       ( ) start start 
  18. )$'&($ "#%* • +!*.)$'-, master GvG!. slave GvG&  

     ,- ($ ( *(')  ) ( %"#    GvG  5/ 42861  03  79 start start +
  19.   •      master GvG

    slave GvG       ( ) start start  master/slave 
  20.   •      master GvG

    slave GvG       ( ) start start  GvG 
  21.   • #  ! start  GvG 

       start       1  /mypage /gvg /quest /quest/flash   "%$
  22. V T eh a m c • . . i

    ml • ml • T b
  23. G 5 G 0 2 14 5 5 3 .

    5    
  24. 7 21 4 0 9 6 3 V 2 -

    0 5V 2 3 24 2 - 7 21 4 V G 3 5 24 2 - 5 V 1 V V
  25. 7 21 4 0 9 6 3 V 2 -

    0 5V 2 3 24 2 - 7 21 4 V G 3 5 24 2 - 5 V 1 V V    
  26. 4 4 •       •

    P 5 H • 3H • ee W b • H C 6 3 • W 23 6 H • 6 3 W 2
  27. 4 4 •     • P 5

    H • 3H • ee W b • H C 6 3 • W 23 6 H • 6 3 W 2  
  28. % 6

  29. ^ w ^ > < < ! G < <

    ! ^ _ > ^ ! < <! v GG ;! _ ^ ^ G G G G ( (! ^ G ) ´
  30. _ w w w !> > !> > w w

    ! !>G> ;; w w ! ;;!< < !(( ´ !) ) m v ^ ^ ^ !) )