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

ある日オレオレフレームワークを作りたくなったぞ/Want to Create Oreore Framework

ある日オレオレフレームワークを作りたくなったぞ/Want to Create Oreore Framework

ある日オレオレフレームワークを作りたくなった話

PHPerKaigi2023

果物リン

March 24, 2023
Tweet

More Decks by 果物リン

Other Decks in Technology

Transcript

  1. 自己紹介 果物リン@FruitRiin • ϑΝϯϑΝʔϨגࣜձࣾ • ݩPHPer, ݱϑϩϯτΤϯυΤϯδχΞ • Vue.js͕޷͖ •

    PHP໿5೥ͿΓ • PHPͷΏΔ;Θʹ΋ߗ͘΋ॻ͚Δݴޠײେ޷͖ • ϑϨʔϜϫʔΫΛ࡞ͬͯΈͨ͘ͳͬͯ͠·ͬͨ
  2. ׬

  3. 有名どころなフレームワークの当時は? • CodeIgniterʢ2006೥ʣ • CakePHPʢ2005೥ʣ • Symfonyʢ2005೥ʣ • Zend Frameworkʢ2006೥ʣ

    • Yii Frameworkʢ2008೥ʣ • Laravelʢ2011೥ʣ • ౰࣌·ͩଘࡏ͍ͯ͠ͳ͔͔ͬͨɺ 
 ͜ͳΕ͍ͯͳ͔ͬͨ • ബ͍ϑϨʔϜϫʔΫΛϕʔεʹ 
 ࣗࣾ޲͚ʹΧελϚΠζͳͲ • ్த͔ΒҠߦ͸ඇৗʹࠔ೉
  4. Ruby on Rails の流行 • Ruby on Rails ͸ 2004೥ʹొ৔

    • ೔ຊͰ΋2000೥୅ޙ൒ʹٸ଎ʹීٴ • ͳΜͱ͍ͬͯ΋։ൃ͕؆୯Ͱૣ͍ • ͕ɺRubyͳͷͰαʔόʔΛݐͯΔͷ͕ͪΐͬͱΉ͔͍ͣ͠ • ౰࣌ίϯςφͱ͔ͳ͍͠Ͷʂ
  5. [app]index.php を避けたい • php-fpm Λ͔ͭ͏ • dockerͳΒ͜Ε͔ͳ • apatchͰ΋͍͍͚Ͳ •

    .htaccessΛ͔ͭ͏ • php -S ͸ htaccess ʹରԠ͍ͯ͠Δʂ • php -S localhost:7777 -t public
  6. PHPUnitしていく • composer require --dev phpunit/phpunit • test σΟϨΫτϦΛ੾Δ •

    PHPUnit\Framework\TestCase Λܧঝͨ͠ΫϥεΛ࡞Δ • ϝιου໊͸ test Ͱ࢝ΊΔ
  7. App用Docker環境構築でハマり • ࠷ऴతʹphp -S ͰΑ͔ͬͨ • ϥΠϒϥϦ͸ phpunit ͔Β •

    ͦΕ͸ͦΕͱͯ͠Docker؀ڥ͸഑෍ߟ͑Δͱศར • ഑෍ͯ͠࢖ΘΕΔͷ͔ʁͱ͔͸ߟ͑ͯ͸͍͚ͳ͍ɻ 
 ຬ଍ײ͕େࣄ
  8. 最終的にできたのがこちら FROM wyveo/nginx-php-fpm:php81 COPY composer.json /usr/share/nginx COPY composer.lock /usr/share/nginx RUN

    chown -R nginx:nginx /usr/share/nginx WORKDIR /usr/share/nginx USER nginx RUN composer install --no-dev --no-scripts --no-autoloader && \ composer dump-autoload --optimize USER root • version: '3.9' services: web: build: . container_name: myapp ports: - '7777:80' volumes: - ./src:/usr/share/nginx/src - ./public:/usr/share/nginx/ html/ depends_on: - db networks: - myapp-net