Cygamesにおける長期運用のこれまでとこれから〜負荷対策とPHP7への道〜

510ec964f5d26c2724c883fd7b671e3d?s=47 Cygames
December 18, 2018

 Cygamesにおける長期運用のこれまでとこれから〜負荷対策とPHP7への道〜

2018/12/15 PHP Conference 2018

510ec964f5d26c2724c883fd7b671e3d?s=128

Cygames

December 18, 2018
Tweet

Transcript

  1. None
  2. None
  3. None
  4. 4  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  5. 5  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  6. ɾ ӡ༻ϓϩδΣΫτͷ৺ߏ͑ ɾ ͲͷΑ͏ʹ1)1̓΁Ҡߦ͔ͨ͠ ɾ ࣮֬ͳෛՙରࡦΛߦ͏ํ๏ ௕ظӡ༻ͷ໰୊఺΋ަ͑ͯ
 ߟ͑ํ΍ख๏ͳͲΛ঺հ͠·͢
 
 


    6 ηογϣϯͷ಺༰ʹ͍ͭͯ ✤ ͸͡Ίʹ
  7. ɾ ӡ༻೥Ҏ্ͷωΠςΟϒΞϓϦ ɾ %"6ສ ɾ ϦΫΤετ਺ ʙ ෼
 ˞αʔόʔ͋ͨΓ ɾ

    "QBDIF 1)1 .Z42- ɾ .FNDBDIFE 7 ϓϩδΣΫτʹ͍ͭͯ ✤ 
  8. 8  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  9. 9  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  10. 10 ✤ ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ ˙ ௕ظӡ༻Ͱ࢓༷͕ෳࡶԽ ˙ ίʔυͷෳࡶԽ ˙ ΤϯόάͷݪҼ ˙

    σόοά޻਺ͷ֬อ ˙ ·ͱΊ
  11. ˙ ௕ظӡ༻Ͱ࢓༷͕ෳࡶԽ ˙ ίʔυͷෳࡶԽ ˙ ΤϯόάͷݪҼ ˙ σόοά޻਺ͷ֬อ ˙ ·ͱΊ

    11 ✤ ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ
  12. ɾ ػೳ͕૿͑ͯෳࡶʹͳͬͨ࢓༷ ɾ ͋·Γ࢖ΘΕͳ͘ͳͬͨػೳ 12 ✤ ௕ظӡ༻Ͱ࢓༷͕ෳࡶԽ ্هͷ߲໨ͳͲςετ͔Β࿙Ε͕ͪ
 ࢓༷֬ೝΛ͔ͬ͠Γߦ͏

  13. ˙ ௕ظӡ༻Ͱ࢓༷͕ෳࡶԽ ˙ ίʔυͷෳࡶԽ ˙ ΤϯόάͷݪҼ ˙ σόοά޻਺ͷ֬อ ˙ ·ͱΊ

    13 ✤ ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ
  14. ɾ ܦա೥਺ͷ໰୊ ɾ ࢓༷มߋͷ໰୊ ɾ ਓһͷೖΕସΘΓ໰୊ 14 ✤ ίʔυͷෳࡶԽ ίʔυΛΑ͘ಡΈ


    ࣮૷Λਖ਼͘͠೺Ѳ͢Δ
  15. ˙ ௕ظӡ༻Ͱ࢓༷͕ෳࡶԽ ˙ ίʔυͷෳࡶԽ ˙ ΤϯόάͷݪҼ ˙ σόοά޻਺ͷ֬อ ˙ ·ͱΊ

    15 ✤ ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ
  16. ɾ ߟྀ΋Ε ɾ ςετෆ଍ ɾ ͍ͭͰͷमਖ਼ʹΑΔςετ΋Ε 16 ✤ ΤϯόάͷݪҼ ӨڹൣғΛܾΊͯରԠ


    ςετ߲໨ͷચ͍ग़͠
  17. ˙ ௕ظӡ༻Ͱ࢓༷͕ෳࡶԽ ˙ ίʔυͷෳࡶԽ ˙ ΤϯόάͷݪҼ ˙ σόοά޻਺ͷ֬อ ˙ ·ͱΊ

    17 ✤ ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ
  18. ɾ ӨڹൣғΛ࿩͠߹͏ ɾ όάͷϦεΫͳͲ৘ใΛڞ༗ ɾ εέδϡʔϧɾ޻਺ͷ֬ೝ 18 ✤ σόοά޻਺ͷ֬อ ίϛϡχέʔγϣϯ࣍ୈͰ


    ෆ۩߹Λरͬͯ΋Β͏͜ͱ΋͋Δ
  19. ˙ ௕ظӡ༻Ͱ࢓༷͕ෳࡶԽ ˙ ίʔυͷෳࡶԽ ˙ ΤϯόάͷݪҼ ˙ σόοά޻਺ͷ֬อ ˙ ·ͱΊ

    19 ✤ ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ
  20. ɾ ܾΊͨ৔ॴ͚ͩΛमਖ਼͢Δ ɾ Өڹൣғ͸ਖ਼֬ʹग़͢ ɾ ແཧͳվम͸͠ͳ͍ 20 ✤ ·ͱΊ ҆ఆӡ༻ͷͨΊͷϧʔϧͱͯ͠

    ্هΛҙࣝ͢Δ
  21. 21  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  22. 22  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  23. 23  ରԠํ਑  ରԠͨ͜͠ͱ  Ҡߦͨ݁͠Ռ  ҠߦΛऴ͑ͯ ✤

    1)1΁ͷҠߦͷྲྀΕ
  24. ɾ ରԠ಺༰
 $FOU04 1)1
 $FOU04 1)1 ɾ ରԠൣғ
 αʔόʔΞϓϦέʔγϣϯ
 ؅ཧը໘σόοάػೳ

    ɾ ରԠظؒ
 ϲ݄ ໿໊ 24 ✤ ରԠํ਑
  25. ɾ 1)1ͲͪΒͰ΋ಈ͘Α͏ʹ͢Δ ɾ ӨڹൣғΛ࠷খݶʹ͢Δ ɾ ݁ՌʹӨڹ͠ͳ͍8BSOJOH΍/PUJDFͷରԠ ͸อཹ͢Δ 25 ✤ ରԠํ਑

    ରԠऀͷҙࣝΛ߹ΘͤΔ
  26. 26  ରԠํ਑  ରԠͨ͜͠ͱ  Ҡߦͨ݁͠Ռ  ҠߦΛऴ͑ͯ ✤

    1)1΁ͷҠߦͷྲྀΕ
  27. ˙ ޓ׵ੑνΣοΧʔͰ֬ೝ ˙ ੩తղੳͷར༻ ˙ ໨ࢹͰͷ֬ೝ ˙ 8BSOJOH΍/PUJDFͷղফ 27 ✤

    ରԠͨ͜͠ͱ
  28. ˙ ޓ׵ੑνΣοΧʔͰ֬ೝ ˙ ੩తղੳͷར༻ ˙ ໨ࢹͰͷ֬ೝ ˙ 8BSOJOH΍/PUJDFͷղফ 28 ✤

    ରԠͨ͜͠ͱ
  29. ɾ ࢖༻ͨ͠νΣοΧʔɿ ɹ1)1@$PEF4OJ⒎FS 1)1$PNQBUJCJMJUZ ɾ ݁Ռɿ
 &SSPSΫϥεͷ໊শมߋఔ౓
 29 ࣮ߦ݁Ռ ✤

    ޓ׵ੑνΣοΧʔͰ֬ೝ ಈ͔ͯ͠ΈΔ
  30. ݪҼɿҰ෦ͷؔ਺ͷҾ਺ෆ଍ Ͱ͸XBSOJOH 30 Τϥʔ͕ൃੜ ✤ ޓ׵ੑνΣοΧʔͰ֬ೝ 
 $this->load->library('foo');
 $this->foo->bar(‘param1’); 


    class Foo{ public function bar($a, $b){…} }
 σϑΥϧτ஋͕ͳ͍ Ҿ਺͕଍Γͳ͍͔
  31. ؅ཧը໘΍σόοάػೳ΋ؚΊΔͱ
 ๲େͳίʔυͷνΣοΫ͕ඞཁ
 
 ҆શʹޮ཰Α͘ਐΊΔʹ͸ʁ 31 ✤ ޓ׵ੑνΣοΧʔͰ֬ೝ ੩తղੳΛར༻͢Δ

  32. ˙ ޓ׵ੑνΣοΧʔͰ֬ೝ ˙ ੩తղੳͷར༻ ˙ ໨ࢹͰͷ֬ೝ ˙ 8BSOJOH΍/PUJDFͷղফ 32 ✤

    ରԠͨ͜͠ͱ
  33. ɾ ίʔυΛ࣮ߦͤͣʹݕূ͢Δπʔϧ ɾ ࠓճ͸1IBOΛར༻ 33 ੩తղੳͱ͸ ✤ ੩తղੳͷར༻

  34. 1IBOͷར༻ྫ PhanParamTooFew Call with 1 arg(s) to \Foo::bar() which requires

    2 arg(s) defined at … ղੳ݁Ռ 1IBO1BSBN5PP'FXͷJTTVF͕ग़Δ ✤ ੩తղੳͷར༻ $this->load->library('foo');
 $this->foo->bar('param1'); 
 class Foo{ public function bar($a, $b){…} }
 σϑΥϧτ஋͕ͳ͍ ໰୊ͷ͋Δίʔυ Ҿ਺͕଍Γͳ͍͔ 34
  35. 35 ✤ ੩తղੳͷར༻ $this->load->library('foo');
 $this->foo->myfunc(); UIJTGPPΛ1IBO͸ೝࣝͰ͖ͳ͍
 
 ղܾํ๏ɿ
 ΞϊςʔγϣϯʹϓϩύςΟ৘ใ͕͋Ε͹ೝࣝ͢Δ
 !QSPQFSUZ'PPGPP


    $PEFJHOJUFSͷϥΠϒϥϦͷϩʔυ
  36. 36 $PEFJHOJUFSͷରԠྫ ✤ ੩తղੳͷར༻ /** * @property CI_input $input *

    @property MY_...... * @property Foo_class $foo * @property ..... */ class CI_Controller { /** * @return MY_Controller */ public static function &get_instance(){} ɾશΫϥε෼Λهࡌ
 ɾੜ੒όονΛ࡞ͬͨ
 ˞ઃఆྫʢҰ෦ʣ
  37. ɾ 1)1%PDͷෆඋ΋͋ΓେྔͷϨϙʔτ͕ൃੜ ɾ ෆཁͳ*TTVFΛਫ਼ࠪ͢Δʹ͸͕͔͔࣌ؒΔ ɾ ࠓ͸ΫϦςΟΧϧͳ΋ͷ͚ͩΛ஌Γ͍ͨ 37 1IBOͷ࣮ߦ݁Ռ͔ΒΘ͔Δ͜ͱ ✤ ੩తղੳͷར༻

    ඞཁͳ1IBOͷ*TTVFΛ ςετίʔυΛ࢖ͬͯௐ΂Δ
  38.  1)1·ͰͷมߋཤྺΛݩʹςετίʔυ࡞੒  ςετίʔυΛ࣮ߦͯ͠ΤϥʔʹͳΔڍಈΛ֬ೝ  ςετίʔυΛ੩తղੳͯ͠ग़ͨ*TTVFΛ֬ೝ 38 ඞཁͳ1IBOͷ*TTVFΛௐ΂Δ ✤ ੩తղੳͷར༻

    1IBOͷ੩తղੳ݁ՌΛ֬ೝɾमਖ਼ Ұ௨Γͷ"1*͕ಈ͘Α͏ʹʂ
  39. ˙ ޓ׵ੑνΣοΧʔͰ֬ೝ ˙ ੩తղੳͷར༻ ˙ ໨ࢹͰͷ֬ೝ ˙ 8BSOJOH΍/PUJDFͷղফ 39 ✤

    ରԠͨ͜͠ͱ
  40. ɾ θϩঃࢉͷ݁Ռ ɾ Մมม਺ͷධՁॱ ɾ GPSFBDI಺Ͱͷ಺෦ϙΠϯλࢀর ɾ ࢀর౉͠ͷ໰୊ ɾ ͦͷଞଟ਺ʢৄࡉ͸1)1ͷมߋཤྺΛࢀরʣ


    ίϝϯτ΍Ϧςϥϧ಺Λল͍ͯ͘ΕΔ
 1)14UPSNͷݕࡧػೳ͕ศར
 40 1)1͔Βڍಈ͕͔Θͬͨ΋ͷΛ֬ೝ ✤ ໨ࢹͰͷ֬ೝ
  41. ɾ ୲౰ΛܾΊͯ໰୊͝ͱʹҰׅௐࠪɾमਖ਼ ɾ ػೳผͰ͸ͳ͘·ͱΊͯରԠ ɾ ௐࠪͰҾ͔͔ͬͬͨະ࢖༻ؔ਺͸࡟আ ɾ ௐࠪͨ͠ࣄΛ໌֬ʹ͢ΔͨΊϩάΛڞ༗ 41 ରԠͷྲྀΕ

    ✤ ໨ࢹͰͷ֬ೝ Ұ௨ΓͷҠߦରԠ͕׬ྃʂ
  42. ˙ ޓ׵ੑνΣοΧʔͰ֬ೝ ˙ ੩తղੳͷར༻ ˙ ໨ࢹͰͷ֬ೝ ˙ 8BSOJOH΍/PUJDFͷղফ 42 ✤

    ରԠͨ͜͠ͱ
  43. 8BSOJOH΍/PUJDFͷղফΛߦ͏ ɾ &@453*$5ͰରԠ͍ͯ͠ͳ͔ͬͨ΋ͷ ɾ ଟ͘ग़ྗ͞ΕΔ΋ͷ 1IBOͷղੳ݁Ռ͔Βޮ཰Α͘ௐࠪग़དྷͨ 43 ରԠํ਑ͷߋ৽ ✤ 8BSOJOH΍/PUJDFͷղফ

  44. 44 ղܾྫ ✤ 8BSOJOH΍/PUJDFͷղফ class A{ function get($a){} } class

    B extends A{ function get($a, $b){} } ΦʔόʔϥΠυͨ͠ϝιο υͷҾ਺͕ҧ͏
 XBSOJOH͕ൃੜ͢Δ 1IBO1BSBN4JHOBUVSF.JTNBUDIΛใࠂ ղੳ݁Ռ
  45. 45  ରԠํ਑  ରԠͨ͜͠ͱ  Ҡߦͨ݁͠Ռ  ҠߦΛऴ͑ͯ ✤

    1)1΁ͷҠߦͷྲྀΕ
  46. 46 ଎౓ൺֱ ✤ Ҡߦͨ݁͠Ռ NT NT શ"1*ฏۉϨεϙϯελΠϜׂݮʂ 1)1 04ͷόʔδϣϯΞοϓ΍ͦͷଞͷෛՙରࡦͷޮՌΛؚΉ 1)1

  47. 47  ରԠํ਑  ରԠͨ͜͠ͱ  Ҡߦͨ݁͠Ռ  ҠߦΛऴ͑ͯ ✤

    1)1΁ͷҠߦͷྲྀΕ
  48. ײ૝
 ෆ۩߹͕ͳ͍͜ͱΛূ໌Λ͢ΔҙࣝͰରԠʹ͋ ͨͬͨͷ͕ɺࡉ෼Խͯ͠ରԠ͢ΔΑΓޮ཰Α͘ ͢͢ΊΒΕͨɻ 
 ՝୊఺
 ҆ఆͨ͠৽͍͠؀ڥʹ߹Θ͍ͤͯͨ͘Ίʹ͸
 ܭըతͳϦϑΝΫλϦϯά͕ඞཁ 48 ✤

    ҠߦΛऴ͑ͯ
  49. 49  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  50. 50  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  51. 51  ͸͡Ίʹ  ࢖༻πʔϧͷ঺հ  ໰୊఺΁ͷΞϓϩʔν  मਖ਼ͷࡍʹ 

    ࣄྫ঺հ  ରࡦޙʹߦ͏͜ͱ ✤ ෛՙରࡦʹ͍ͭͯ
  52. 52  ͸͡Ίʹ  ࢖༻πʔϧͷ঺հ  ໰୊఺΁ͷΞϓϩʔν  मਖ਼ͷࡍʹ 

    ࣄྫ঺հ  ରࡦޙʹߦ͏͜ͱ ✤ ෛՙରࡦʹ͍ͭͯ
  53. 53 ✤ ͸͡Ίʹ தԝςΩετ ϐʔΫ࣌ͷϦΫΤετ͕̑ഒ

  54. 54 ✤ ͸͡Ίʹ தԝςΩετ ஗ԆϨεϙϯε͕૿Ճ

  55. 55 ✤ ͸͡Ίʹ ෛՙରࡦ͕ඞཁ αʔόʔαΠυͱͯ͠
 ΑΓ҆ఆͨ͠؀ڥΛ࡞Γ͍ͨ

  56. 56  ͸͡Ίʹ  ࢖༻πʔϧͷ঺հ  ໰୊఺΁ͷΞϓϩʔν  मਖ਼ͷࡍʹ 

    ࣄྫ঺հ  ରࡦޙʹߦ͏͜ͱ ✤ ෛՙରࡦʹ͍ͭͯ
  57. ˙ /FX3FMJD ˙ 9IQSPGʢUJEFXBZTʣ 57 ✤ ࢖༻πʔϧͷ঺հ

  58. 58 αʔόʔɾΞϓϦέʔγϣϯͷ؂ࢹπʔϧ ✤ /FX3FMJD "1*͝ͱͷॲཧ࣌ؒͷ෼ੳʹ .FNDBDIFEHFU .FNDBDIFETFU 1)1 ฏۉॲཧ࣌ؒ

  59. 59 1)1ͷϓϩϑΝΠϥ ✤ 9IQSPG 1)1Ҏ߱͸UJEFXBZT ϓϩάϥϜ಺෦ͷௐࠪʹ ؔ਺ͷ७ਮͳॲཧ࣌ؒ
 ݺͼग़͠ઌΛؚΊͳ͍ ؔ਺શମͷॲཧ࣌ؒ
 ݺͼग़͠ઌΛؚΊΔ

    Ͳͷؔ਺͕ԿΛݺͼग़ͯ͠ ͍Δ͔΋௥͍͚ͬͯΔ
  60. 60  ͸͡Ίʹ  ࢖༻πʔϧͷ঺հ  ໰୊఺΁ͷΞϓϩʔν  मਖ਼ͷࡍʹ 

    ࣄྫ঺հ  ରࡦޙʹߦ͏͜ͱ ✤ ෛՙରࡦʹ͍ͭͯ
  61. ˙ վળ͢Δ"1*ͷ୳͠ํ ˙ मਖ਼Օॴͷ୳͠ํ 61 ✤ ໰୊఺΁ͷΞϓϩʔν

  62. ˙ վળ͢Δ"1*ͷ୳͠ํ ˙ मਖ਼Օॴͷ୳͠ํ 62 ✤ ໰୊఺΁ͷΞϓϩʔν

  63. 63 ˙ ஗͍"1*ͷ୳͠ํ ˙ ෛՙ͕ߴ͍"1*ͷ୳͠ํ ✤ վળ͢Δ"1*ͷ୳͠ํ

  64. 64 ˙ ஗͍"1*ͷ୳͠ํ ˙ ෛՙ͕ߴ͍"1*ͷ୳͠ํ ✤ վળ͢Δ"1*ͷ୳͠ํ

  65. ฏۉԠ౴͕࣌ؒ௕͍"1*
 
 αʔόʔʹෛՙ͕͔͔͍ͬͯΔ͚ͩͰͳ͘
 շదʹϓϨΠͰ͖ͳ͍৔߹͕͋ΔͷͰ
 վળ͕ඞཁ
 65 ஗͍"1*ͱ͸ʁ ✤ ஗͍"1*ͷ୳͠ํ

  66. 66 ॲཧʹ͕͔͔࣌ؒͬͨॴΛ୳͢ ✤ ஗͍"1*ͷ୳͠ํ ͜͜Λ֬ೝ /FX3FMJDͰ .PTUUJNFDPOTVNJOHΛදࣔ /FX3FMJDͰ ϨεϙϯελΠϜ͕஗͍ॱʹදࣔ

  67. ˙ ஗͍"1*ͷ୳͠ํ ˙ ෛՙ͕ߴ͍"1*ͷ୳͠ํ 67 ✤ վળ͢Δ"1*ͷ୳͠ํ

  68. ஗͍"1*ͱൺֱͯ͠ɺҰ౓ͷॲཧ͕࣌ؒͦ͜· Ͱ஗͘ͳͯ͘΋ϦΫΤετ਺͕ଟ͚Ε͹αʔόʔ ΁ͷෛՙ͕ߴ͘ͳΔ 
 ߹ܭԠ౴࣌ؒ ϦΫΤετ਺9ॲཧ࣌ؒ 
 ͷ஗͍ॴ͕ෛՙ͕ߴ͍"1*ͱߟ͑Δ 68 ෛՙ͕ߴ͍"1*ͱ͸ʁ

    ✤ ෛՙ͕ߴ͍"1*ͷ୳͠ํ
  69. 69 ߹ܭԠ౴࣌ؒͷ௕͍ॴΛ୳͢ ✤ ෛՙ͕ߴ͍"1*ͷ୳͠ํ /FX3FMJDͰ .PTUUJNFDPOTVNJOHΛදࣔ ͜͜Λগ͠Ͱ΋ૣ͘ग़དྷΕ͹ ޮ཰Α͘શମͷෛՙ͕Լ͕Δ

  70. ˙ վળ͢Δ"1*ͷ୳͠ํ ˙ मਖ਼Օॴͷ୳͠ํ 70 ✤ ໰୊఺΁ͷΞϓϩʔν

  71. 71 ໰୊ͷ੾Γ෼͚Λߦ͏ ✤ मਖ਼Օॴͷ୳͠ํ .FNDBDIFEHFU .FNDBDIFETFU 1)1 ฏۉॲཧ࣌ؒ 1)1ͷॲཧ͔࣌ؒɺ.FNDBDIFEͷऔಘ͔
 ஗͍ΫΤϦ͕໰୊͔ͳͲ


    ·ͣ໰୊ͷ੾Γ෼͚Λߦ͏
  72. 72 ϓϩϑΝΠϥͰ෼ੳ ✤ मਖ਼Օॴͷ୳͠ํ ਌ؔ਺ શମ͔Βݟׂͨ߹ BSSBZ@NVMUJTPSU͕
 ϘτϧωοΫͩͬͨ શମͷDBMM਺

  73. 73  ͸͡Ίʹ  ࢖༻πʔϧͷ঺հ  ໰୊఺΁ͷΞϓϩʔν  मਖ਼ͷࡍʹ 

    ࣄྫ঺հ  ରࡦޙʹߦ͏͜ͱ ✤ ෛՙରࡦʹ͍ͭͯ
  74. ɾ ܾΊͨ৔ॴ͚ͩΛमਖ਼͢Δ ɾ Өڹൣғ͸ਖ਼֬ʹग़͢ ɾ ແཧͳվम͸͠ͳ͍ 74 ҆ఆӡ༻ͷͨΊͷϧʔϧ ✤ मਖ਼ͷࡍʹ

    ࠶֬ೝʂ
  75. 75  ͸͡Ίʹ  ࢖༻πʔϧͷ঺հ  ໰୊఺΁ͷΞϓϩʔν  मਖ਼ͷࡍʹ 

    ࣄྫ঺հ  ରࡦޙʹߦ͏͜ͱ ✤ ෛՙରࡦʹ͍ͭͯ
  76. ˙ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ ˙ ഑ྻͷಡΈࠐΈվળ ˙ ͦͷଞࡉ͔ͳରԠ 76 ✤ ࣄྫ঺հ

  77. ˙ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ ˙ ഑ྻͷಡΈࠐΈվળ ˙ ͦͷଞࡉ͔ͳରԠ 77 ✤ ࣄྫ঺հ

  78. %#͔Βऔಘ͢Δ৘ใ͸େ൒͕ΩϟογϡࡁΈ ෛՙରࡦ͍ͯ͠Δ͸ͣͳͷʹޮՌ͕ബ͍
 78 ϩάΠϯ࣌΍ΫΤετͷॲཧ͕஗͍ ✤ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ

  79. ࢓༷௥ՃͰऔಘ͢Δ΋ͷ͕૿Ճ͍ͯͨ͠
  79 ݪҼ ✤ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ ✖ମ ✖දࣔਓ਺ εΩϧʴ෢ثʴΩϟϥΫλʔ ૿͑ͨ

    ૿͑ͨ ૿͑ͨ ࠷େΩϟϥ෼ͷ৘ใऔಘ
  80. 80 ࡉʑͨ͠σʔλΛ·ͱΊͯΩϟογϡʹ ΩϟϥΫλʔମ෼ͷϑϨϯυ৘ใΛ·ͱΊͯΩϟογϡ
 ΞΫςΟϒͳϓϨΠϠʔͷ৘ใΛଟ͘औಘ͍ͯͨ͠ͷͰ
 ޮ཰Α͘৘ใͷ࠶ར༻͕Ͱ͖ͨɻ ΩϟϥΫλʔ ෢ث εΩϧ ✖ମ ✖දࣔਓ਺

    ͜͜Λ·ͱΊͯΩϟογϡ
 ߋ৽͞ΕͨΒΩϟογϡ͸ΫϦΞ ✤ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ
  81. ϩάΠϯ࣌ͷෛՙ͕ݮ
 
 ӡ༻্ػೳ௥Ճ΍্ݶղ์͸͞Ε͍ͯ͘΋ͷ
 طଘͷෛՙରࡦ͕
 ݱࡏ΋࠷ద͔Λݟ௚͢ࣄ΋ඞཁ 81 վमޙ ✤ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ

  82. ˙ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ ˙ ഑ྻͷಡΈࠐΈվળ ˙ ͦͷଞࡉ͔ͳରԠ 82 ✤ ࣄྫ঺հ

  83. 83 ✤ ഑ྻͷಡΈࠐΈվળ ॲཧ࣌ؒͷ൒෼͕
 .FNDBDIFE͔ΒͷಡΈࠐΈͱ൑໌ .FNDBDIFEHFU 1)1

  84. Ωϟογϡ͔Β࿈૝഑ྻΛऔΓग़͢ॴ͕஗͘ͳΔ 84 ݪҼɿ$47ͷංେԽ ΩϟϥΫλʔσʔλ
 ಡΈࠐΈޙͷϝϞϦαΠζ ϝϞϦ.# ✤഑ྻͷಡΈࠐΈվળ $charaData = [

    110001 => [ 'name' => '໊લ', 'type' => 1, 'param1' => 1001, 'param2' => 1002, ], 110002 => [ ݩσʔλ͸$47 ։ൃ্ͷखܰ͞ͷ໰୊
  85. ɾ ϓϥΠϚϦʔΩʔͰ֤ߦʹΞΫηε ɾ औಘͨ͠σʔλͷׂ̍΋ར༻͍ͯ͠ͳ͍
 ʢ࢒Γͷσʔλ΋࿈૝഑ྻͷͨΊ
 ϝϞϦΛແବʹফඅʣ 
 85 σʔλͷ࢖༻ঢ়گΛ࠶֬ೝ ✤

    ഑ྻͷಡΈࠐΈվળ ඞཁͳߦ͚ͩ࿈૝഑ྻͰཉ͍͠
  86. վमΠϝʔδ ɾ ΦϒδΣΫτܕʹมߋ͢Δ ɾ HFU࣌ʹϔομͱΧϥϜΛBSSBZ@DPNCJOF ɾ ΠςϨʔλΛ࣮૷͠ϧʔϓͰ͖ΔΑ͏ʹ 86 ಡΈࠐΈ࣌Λܰ͘͢Δ޻෉ ✤

    ഑ྻͷಡΈࠐΈվળ ࢖༻Πϝʔδ
 DIBSB@EBUBDTW-PBEMPBE DIBSB@EBUBDTW  DIBSBDIBSB@EBUBHFU JE 
 DIBSB<OBNF>Ͱ֤ΧϥϜʹΞΫηε
  87. DTW-PBEͷϝϯόม਺ʢ؆ུԽͯ͠දࣔ ɾϔομ഑ྻ<DPM DPM>
 ɾσʔλJE֤ΧϥϜͷ஋Λ࿈݁ͨ͠จࣈྻ
 JE֤ΧϥϜͷ஋Λ࿈݁ͨ͠จࣈྻ
 ɾσϛϦλʢ࿈݁༻จࣈྻʣ 87 ΦϒδΣΫτ൛ϩʔμʔΛ࡞੒ ✤ ഑ྻͷಡΈࠐΈվળ

    σʔλΛจࣈྻʹͨ͠ཧ༝
 JE<YYY YYY YYY>ͳͲ
 ഑ྻͰ΋ܰͦ͏ʹࢥ͑Δ͕
 ಺෦తʹ<YYY YYY>ͷ࿈૝഑ྻͱมΘΒͳ͍ 1)1 
  88. ༷ʑͳ"1*Ͱෛՙ͕ݮ
 
 αΠζͷେ͖͍഑ྻΛѻ͏ίετΛೝࣝ
 ཁૉ਺ͷଟ͍഑ྻ ͷ഑ྻ ͸ͱʹ͔͘ॏ͍ 
 ˞1)1ͰͷରԠͷͨΊ 88 վળޙ

    ✤ ഑ྻͷಡΈࠐΈվળ
  89. ˙ ࢄΒ͹ͬͨσʔλΛ·ͱΊΔ ˙ ഑ྻͷಡΈࠐΈվળ ˙ ͦͷଞࡉ͔ͳରԠ 89 ✤ ࣄྫ঺հ

  90. 90 ϧʔϓதͷॲཧ΍഑ྻૢ࡞Λҙࣝ͢Δ ɾ ϧʔϓΛ܁Γฦ͞ͳ͍޻෉ ɾ ؔ਺ͷݺͼग़͠ΛݮΒ͢޻෉ ɾ GPSFBDIͰͰ͖Δࣄ͸GPSFBDIΛਪ঑ ✤ ͦͷଞࡉ͔ͳରԠ

    $cols = array_column($list, 'col'); foreach ($list as $val) {....} ݁ہޙ͔Βϧʔϓ͢Δࣄ͕ଟ͍
 ͦͷ࣌ʹϦϑΝΫλϦϯά͕Ͱ͖Δͱ͸ݶΒͳ͍
  91. 91 ඵͰ΋ճ௨Ε͹ඵ 
 ฏۉϨεϙϯελΠϜ͸NTલޙ
 
 ϧʔϓ಺ʹඵͷແବ͕͋Ε͹
 ମײϨϕϧͰมΘͬͯ͘Δ͜ͱ΋
 
 ܰྔԽΛߦ͏࣌͸ϧʔϓ಺ͷॲཧʹ஫໨͢Δ ✤

    ͦͷଞࡉ͔ͳରԠ
  92. 92  ͸͡Ίʹ  ࢖༻πʔϧͷ঺հ  ໰୊఺΁ͷΞϓϩʔν  मਖ਼ͷࡍʹ 

    ࣄྫ঺հ  ରࡦޙʹߦ͏͜ͱ ✤ ෛՙରࡦʹ͍ͭͯ
  93. ˙ ݁ՌͷՄࢹԽ ˙ ޮՌଌఆͱৼΓฦΓ ˙ ϊ΢ϋ΢Λڞ༗ 93 ✤ ରࡦޙʹߦ͏͜ͱ

  94. ˙ ݁ՌͷՄࢹԽ ˙ ޮՌଌఆͱৼΓฦΓ ˙ ϊ΢ϋ΢Λڞ༗ 94 ✤ ରࡦޙʹߦ͏͜ͱ

  95. ʮෛՙରࡦʯͱ͍͏ݴ༿͚ͩͰ͸఻ΘΓʹ͍͕͘
 ରࡦͨ͠΋ͷ͕Θ͔Δ͜ͱͰνʔϜશମͷҙࣝվֵ΁ 95 ڞ༗͢ΔͨΊʹՄࢹԽ͢Δ ✤ ݁ՌͷՄࢹԽ Ξϐʔϧ͢Δʂ

  96. ˙ ݁ՌͷՄࢹԽ ˙ ޮՌଌఆͱৼΓฦΓ ˙ ϊ΢ϋ΢Λڞ༗ 96 ✤ ରࡦޙʹߦ͏͜ͱ

  97. ɾ ରࡦޙͷ਺஋ΛΈͯ໨ඪ஋ͱൺֱ ɾ ૝ఆ͢Δ஋͕ਖ਼͔͔ͬͨ͠ৼΓฦΔ 97 ✤ ޮՌଌఆͱৼΓฦΓ ݁ՌΛೝࣝ͢Δ͜ͱͰ
 ΑΓత֬ͳ൑அʹͭͳ͕Δʂ

  98. ˙ ݁ՌͷՄࢹԽ ˙ ޮՌଌఆͱৼΓฦΓ ˙ ϊ΢ϋ΢Λڞ༗ 98 ✤ ରࡦޙʹߦ͏͜ͱ

  99. ෛՙରࡦͰಘͨ஌ݟ͸
 ΑΓ҆ఆͨ͠ӡ༻ʹੜ͔͢
 
 ৘ใަ׵Λ͠ࠓޙͷίʔυͷ඼࣭ʹͭͳ͛Δ
 ࣌ʹ஍ಓͳࠜճ͠΋ඞཁ
 99 ΤϯδχΞؒͷٕज़޲্ʹ ✤ ϊ΢ϋ΢Λڞ༗

  100. 100  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  101. 101  ͸͡Ίʹ  ӡ༻ͰؾΛ͚͍ͭͯΔ͜ͱ  1)1΁ͷҠߦͷྲྀΕ  ෛՙରࡦʹ͍ͭͯ 

    ·ͱΊ ✤ ΞδΣϯμ
  102. 102 ✤ ·ͱΊ ɹ ҆શ͔ͭ҆ఆͨ͠؀ڥʹඞཁͳ͜ͱ ҆ఆӡ༻Λҙ͍͖͍ࣝͯͨ͠ʂ ෛՙରࡦɾόʔδϣϯΞοϓ

  103. ɾ πʔϧΛ࢖ͬͯ٬؍తʹ൑அ͢Δ ɾ վम࣌ʹ͸ϧʔϧΛܾΊͯߦ͏ ɾ ख౰ͨΓ࣍ୈʹ΍Βͳ͍Α͏ʹ͢Δ 103 ҆ఆӡ༻ͷͨΊͷϙΠϯτ ✤ ·ͱΊ

    ɹ
  104. $ZHBNFT͸ࠓޙ΋
 ࠷ߴͷίϯςϯπͰ༡ΜͰ͍ͨͩͨ͘Ίʹ
 ҆ఆͨ͠։ൃͱվળΛଓ͚·͢
 104 ✤ ·ͱΊ