パーフェクトPHPのススメ

9c156659cc0b28cafff09624eca5ffd0?s=47 Yumihiki
October 30, 2019

 パーフェクトPHPのススメ

Web×PHP TechCafe 10月 @ RAKUS のLT資料です。

9c156659cc0b28cafff09624eca5ffd0?s=128

Yumihiki

October 30, 2019
Tweet

Transcript

  1. ύʔϑΣΫτ1)1ͷεεϝ :VNJIJLJ  8FCº1)15FDI$BGF݄ˏ3",64

  2. ࣗݾ঺հ :VNJIJLJʢΏΈͻ͖ʣ 1)1FSͰ͢ υϥΰϯΫΤετ΢ΥʔΫͷ ΍Γ͗͢Ͱ଍Λ௧Ί·ͨ͠ ٷಓՈٷҾ͖ɹ͕༝དྷͰ͢

  3. ύʔϑΣΫτ1)1͸͍͍ͧ

  4. ηΫγʔͳ1)1FSʹ ͳΔͨΊʹ͸ඞಡͷҰ࡭ ύʔϑΣΫτ

  5. ύʔϑΣΫτ1)1ͱ͸ ࡭Ͱݴޠ࢓༷͔Β࠷৽ͷٕज़·ͰΛ໢ཏͨ͠಺༰ɻ ໢ཏతʹղઆ͞Ε͍ͯΔ͚ͩͰͳ͘ɼ֤ٕज़ʹؔͯ͠͸جຊ͔Β͔ͬ͠Γղઆ͠ɼ ϑϨʔϜϫʔΫͳͲΛར༻ͨ͠8FCΞϓϦέʔγϣϯ։ൃͷղઆͳͲ͸ɼ ಺෦ॲཧ͕ཪͰԿΛ͍ͯ͠Δͷ͔Λ۷ΓԼ͛ͯղઆͯ͋͠ΔͨΊɼ 1)1Λମܥతʹֶͼ͍ͨํ͸΋ͪΖΜɼ ΑΓਂ͍஌ࣝΛಘ͍ͨதʙ্ڃऀʹ΋͓קΊͷҰ࡭Ͱ͋Δɻ IUUQTHJIZPKQCPPL͜ͷຊͷ֓ཁΑΓ

  6. ϑϨʔϜϫʔΫΛ࡞ͬͯ 8FCΞϓϦέʔγϣϯΛ ։ൃ͠·͢

  7. ࣮ࡍʹֶशͯ͠Έͯ

  8. #FGPSF ͦ΋ͦ΋ΦϒδΣΫτࢦ޲ͬͯԿʁɹඒຯ͍͠ͷʁ UIJT QVCMJD JOUFSGBDF TFMG ʜ֮͑Δ୯ޠଟ͘ͳ͍ʁ ϑϨʔϜϫʔΫ΋தͰԿͯ͠ΔΜ͔ ਖ਼௚Θ͔Βͳ͍ɾɾɾ

  9. "GUFS ΦϒδΣΫτࢦ޲ͱ ϑϨʔϜϫʔΫͷ࢓૊Έ ׬શʹཧղͨ͠

  10. ࣮ࡍʹϑϨʔϜϫʔΫΛར༻ͯ͠ ࡞੒͢Δ8FCΞϓϦέʔγϣϯ͸ ͜Μͳײ͡Ͱ͢ʢࠓ͔Βө͠·͢ʣ

  11. ϑϨʔϜϫʔΫʹ͍ͭͯ গ͠ղઆΛߦ͍͖ͬͯ·͢

  12. ύʔϑΣΫτ̥̝̥Ͱ࡞Δ ϑϨʔϜϫʔΫʹ͍ͭͯ

  13. ϑϨʔϜϫʔΫͷཁ݅ • MVCϞσϧʹΑΔ໾ׂͷ෼཭ • σʔλϕʔεͷ઀ଓ؅ཧ • ϩάΠϯঢ়ଶͷ؅ཧ • URLͱ෺ཧతͳσΟϨΫτϦߏ଄ͱΛ੾Γ཭͢ϧʔςΟϯάػೳ •

    CSRFରࡦ
  14. ϑϨʔϜϫʔΫͷ ߏ଄ɾॲཧͷྲྀΕ

  15. 3FRVFTU (&5΍1045 ύϥϝʔλɺ63-౳ ͷ؅ཧ "QQMJDBUJPO 3PVUFS 63-Λड͚औΓ ݺͼग़͢ ίϯτϩʔϥΛࢦఆ $POUSPMMFS

    Ϟσϧ΍Ϗϡʔͷ ੍ޚΛߦ͏ ΞΫγϣϯΛఆٛ 3FTQPOTF ϦΫΤετʹର͠ ࠷ऴతʹϢʔβ΁ ฦ͢৘ใΛ؅ཧ %C.BOBHFS σʔλϕʔε΁ͷ઀ଓ ৘ใ΍%C3FQPTJUPSZ ͷ؅ཧ %C3FQPTJUPSZ ΞΫηεΛ൐͏ॲཧΛ ؅ཧɻϞσϧʹ૬౰ 4FTTJPO ηογϣϯ Λ؅ཧ͢Δ 7JFX දࣔΛ੍ޚ͢Δɻ ϑΝΠϧͷಡΈࠐΈ΍ ड͚౉͠Λߦ͏ ύʔϑΣΫτ1)1 ϖʔδΑΓ ͜ͷҰ࿈ͷྲྀΕΛ ੍ޚ͢ΔΫϥε ࠷ॳ͸͔͜͜Βʂ ࠷ޙʹ৘ใΛग़ྗʂ
  16. ͜͏͍͏಺෦తͳ ॲཧ͕͋Δͷ͔ͱ ษڧʹͳͬͨ͜ͱ

  17. ৭ʑ͋Γ·͢

  18. ྫ͑͹

  19. ΫϥεͱΦʔτϩʔυ

  20. ΫϥεͱΦʔτϩʔυ ΦʔτϩʔυΛઃఆ͢Δ͜ͱͰΫϥεΛݺͼग़ͨ͠ࡍʹ ͦͷΫϥε͕PHP্ʹಡΈࠐ·Ε͍ͯͳ͍৔߹ɺ ࣗಈతʹϑΝΠϧͷಡΈࠐΈΛߦ͏͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔɻ ຖճಡΈࠐΈॲཧΛॻ͔ͳͯ͘ྑ͍

  21. Ͳ͏΍͍ͬͯΔͷʁ

  22. ClassLoader.phpͱ bootstrap.php

  23. ClassLoader.php

  24. ClassLoader.php spl_autoload_register()ϝιουͰ ઃఆͨ͠ίʔϧόοΫؔ਺ΛΦʔτϩʔυ࣌ʹݺͼग़ͤΔ

  25. ClassLoader.php σΟϨΫτϦͷొ࿥Λߦ͏

  26. ClassLoader.php Φʔτϩʔυ࣌ʹPHP͔Βࣗಈతʹݺͼग़͞Ε ΫϥεϑΝΠϧͷಡΈࠐΈΛߦ͏

  27. ClassLoader.php $dirsϓϩύςΟʹઃఆ͞ΕͨσΟϨΫτϦ͔Β ʮΫϥε໊.phpʯΛ୳͠ݟ͔ͭͬͨ৔߹ʹrequireͰಡΈ͜Ή

  28. bootstrap.php ClassLoaderΛੜ੒͠ɺcoreɺmodelσΟϨΫτϦΛ Φʔτϩʔυͷର৅σΟϨΫτϦʹઃఆ͠ɺ register()ϝιουͰΦʔτϩʔυʹొ࿥

  29. bootstrap.php ͦͯ͠ɺbootstrap.phpΛಡΈࠐΉͱ Φʔτϩʔυ͕ઃఆ͞Ε·͢

  30. ͜ͷΑ͏ͳॲཧͰ ΦʔτϩʔυΛ࣮૷ ͍ͯ͠·ͨ͠ ศརͰ͢Ͷ

  31. ͜͏͍͏಺෦తͳ ॲཧ͕͋Δͷ͔ͱ ษڧʹͳͬͨ͜ͱ Part2

  32. ࣌ؒͷ౎߹্ࡉ͔͘ ࿩ͤͦ͏ʹ͋Γ·ͤΜʜ

  33. গ͠ૣޱͰ ͱͯ΋ͬ͘͟Γͱ

  34. ApplicationΫϥεͷ࣮૷ ίϯτϩʔϥͷݺͼग़͠ ϩάΠϯ੍ޚͳͲ

  35. ଟ਺ͷ಺෦తͳॲཧΛ هड़͠ɺಈ͖Λ஌Δ ͜ͱ͕Ͱ͖·͢

  36. ࠓ೔࿩ͨ͠಺༰͸ ύʔϑΣΫτPHPͷ ΄ΜͷҰ෦͚ͩͰ͢

  37. ͥͻҰ౓ ύʔϑΣΫτPHPΛ ಡΜͰΈ͍ͯͩ͘͞

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