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

レガシーPHPで require_once とかいう呪いを退治できるかもしれない

レガシーPHPで require_once とかいう呪いを退治できるかもしれない

第125回 PHP勉強会@東京の発表資料です
公開しているライブラリはコチラになります。
https://packagist.org/packages/nazonohito51/require-path-fixer

Satoshi Kawashima

April 25, 2018
Tweet

More Decks by Satoshi Kawashima

Other Decks in Technology

Transcript

  1. τʔΫϯύʔαͰࣈ۟ղੳ wUPLFO@HFU@BMM Ͱࣈ۟ղੳͰ͖Δ 5@%*3 5@3&26*3&@0/$& 5@$0/45"/5 @&/$"14&%@453*/( 5@7"3*"#-& 5@$0..&/5 5@453*/(

    5@3&26*3&@0/$& 5@3&26*3&@0/$& 5@3&26*3&@0/$& 5@$0/45"/5 @&/$"14&%@453*/( 5@$0/45"/5 @&/$"14&%@453*/( 5@$0..&/5 5@$0/45"/5 @&/$"14&%@453*/(
  2. FWBM ͰQIQίʔυͱ࣮ͯ͠ߦ͢Δͱɺ $path = eval(‘ define(“KNOWN_CONSTANT”, __DIR__ . “/known”); define(“COMMON_DIR”,

    “/common”); $util = “/utility”; return (dirname(dirname(__FILE__)).COMMON_DIR. “{$util}/path/to/file.php”); ‘);
  3. ϑΝΠϧύεͬΆ͍จࣈྻ͕ฦͬͯ͘Δ $path = eval(‘ define(“KNOWN_CONSTANT”, __DIR__ . “/known”); define(“COMMON_DIR”, ”/common”);

    $util = “/utility”; return (dirname(dirname(__FILE__)).COMMON_DIR. “{$util}/path/to/file.php”); ‘); QBUIUPBQQSPPUDPNNPOVUJMJUZQBUIUPpMFQIQ ˣ
  4. ύεͷछྨͱରԠํ๏ छྨ ྫ ରԠํ๏ ઈରύε BQQSPPUQBUIUPpMFQIQ मਖ਼͢Δ ΧϨϯτσΟϨΫτϦϕʔ ε QBUIUPpMFQIQ

    ಡΈࠐΈઌϑΝΠϧΛ ಛఆ͔ͯ͠Βमਖ਼ ΠϯΫϧʔυύεϕʔε QBUIUPpMFQIQ ಡΈࠐΈઌϑΝΠϧΛ ಛఆ͔ͯ͠Βमਖ਼ ύεղܾͰ͖ͳ͔ͬͨ 6/,/08/@$0/45"/5bQBUIUPpMFQIQ`
 ·ͨ͸ύεղܾதʹΤϥʔ मਖ਼͠ͳ͍
  5. ࣮ߦ݁Ռʢͦͷ̍ʣ     ઈରύε ΧϨϯτσΟϨΫτϦ ΠϯΫϧʔυύε ෆ໌ 

      ઈରύεݸ ઈରύεݸ ʢγϯλοΫεతʹ΋ۉ࣭ͳঢ়ଶʣ ˞૯਺͕มΘ͍ͬͯΔͷ͸ɺ్தͰෆཁϑΝΠϧҰ੾࡟আΛ࣮ࢪͨͨ͠Ί
  6. ࣮ߦ݁Ռʢͦͷ̎ʣ   ઈରύε ΧϨϯτσΟϨΫτϦ ΠϯΫϧʔυύε ෆ໌   

    ˞૯਺͕มΘ͍ͬͯΔͷ͸ɺϑΝΠϧΛҠಈͯ͠ΦʔτϩʔσΟϯάϔҠߦग़དྷͨͨΊ ઈରύεݸ ઈରύεݸ ʢγϯλοΫεతʹ΋ۉ࣭ͳঢ়ଶʣ
  7. ࣮ߦ݁Ռʢະ࣮ߦʣ