PHP Conference Japan 2023での発表資料です。 https://fortee.jp/phpcon-2023/proposal/b2568517-f8ae-4ae7-85f4-89adc624fcda
PHP Conference 2023Hideki KinjyoGitHub: o0h / Twitter: @o0h_ [ൃද൛]
View Slide
ࣗݾհ/GitHub: @o0h / X: @o0h_FW CakePHP
⏳estimate: 0 1 /25
ҧ͏ʂʂΤϥʔఢ͡Όͳ͍ɺ༑ୡͳΜͩʂʂ⏳estimate: 1 /25
͜ΜͳࣄΛ͍͖ͯ͠·͢PHP⏳estimate: 1 2 /25˒খ͞ͳએίʔφʔ˒
͜ΜͳͷΛ࣋ͬͯؼͬͯΒ͍͍ͨPHP⏳estimate: 1 2 /25
͓͠ͳ͕͖1.2. PHP3.4. PRO5. PHP⏳estimate: 1 2 /25
§1
ϓϩάϥϛϯάݴޠͳͥʮΤϥʔʯΛݴͬͯ͘Δͷʁ=⏳estimate: 1 2 /25
PHP Software Developers ⏳estimate: 1 2 /25
PHP Software Developers ͍⏳estimate: 2 /25
⏳estimate: 2 /25
Τϥʔͷ͋Δੈքɺͳ͍ੈքɾɾɾͲ͕ͬͪྑ͍Ͱ͔͢ʁ:31:::⏳estimate: 2~3 /25
Τϥʔͷ͋Δੈքɺͳ͍ੈքɾɾɾͲ͕ͬͪྑ͍Ͱ͔͢ʁ(= )=>=>=>⏳estimate: 2~3 /25
Τϥʔͷ͋Δੈքͷํ͕ɺ༏͍͠ੈք2⏳estimate: 2~3 /25
PHP 👀⏳estimate: 2~3 /25
ྫ͑sprintf()ͷྫ(%)switchsrc:IUUQTHJUIVCDPNQIQQIQTSDCMPCQIQFYUTUBOEBSEGPSNBUUFE@QSJOUD--
ྫ͑sprintf()ͷྫcase (default )⏳estimate: 3 /25
ྫ͑sprintf()ͷྫsrc:IUUQTHJUIVCDPNQIQQIQTSDCMPCQIQFYUTUBOEBSEGPSNBUUFE@QSJOUD--(% )
⏳estimate: 3 /25
Τϥʔɺ͑Βʙ͍👏::⏳estimate: 3~4 /25
§2PHP
§2 PHP.1.2 PHP
Τϥʔʹʮఔʯ͕͋Δͧ( ) ⏳estimate: 4 /25
[ࣸਅ](্) ҹ ενʔϜࣜՃ࣪ث EE-RQ35ܕ/EE-RQ50ܕ औѻઆ໌ॻ(Լ) ΞΠϦεΦʔϠϚ ਅۭอଘϑʔυγʔϥʔ VPF-385T औѻઆ໌ॻࢀߟ: ՈిΛ҆શʹ͏ͨΊͷϚʔΫʛҰൠࡒஂ๏ਓՈిڠձ https://aeha.or.jp/safety/mark/index.htmlใͷྨͷྫ: ՈిͷϚχϡΞϧ::
ใͷྨͷྫ: ՈిͷϚχϡΞϧ[ࣸਅ]ҹ ενʔϜࣜՃ࣪ث EE-RQ35ܕ/EE-RQ50ܕ औѻઆ໌ॻ
ใ͕ྨ͞Ε͍ͯΔͱศརͰ͢Ͷʂ⏳estimate: 5 /25
ͲΜͳʮఔʯ͕͋Δʁ::( )::⏳estimate: 5~6 /25
§2 PHP.1.2 PHP⏳estimate: 5~6 /25
PHPʹ͓͚ΔΤϥʔఆ(ΤϥʔϨϕϧ)IUUQTXXXQIQOFUNBOVBMKBFSSPSGVODDPOTUBOUTQIQ
PHPͷΤϥʔܥ౷
PHPͷΤϥʔܥ౷ͦΕͧΕɺ͑Α͏ͱ͍ͯ͠Δҙਤ͕ҧͬͨΓ ͨΒ݁͢Ռ͕ҧ͏Μͩͳʙ ۠ผ͕͋ΔΜͩͳʙ⏳estimate: 6 /25
PHPͷΤϥʔͨͪʙ͜Ε͚֮ͩ͑Α͏ʙE_ERROR => [ ] PHPE_WARNING => [ ] PHPE_NOTICE => [ ] PHP⏳estimate: 6 /25
E_ERROR / ॏେ(Throwable)⏳estimate: 6~7 /25
E_WARNING / ܯࠂ( )( ) URL
E_NOTICE / ҙ
§3
§3.1.2⏳estimate: 7 /25
ྑ͘ͳͦ͞͏ͳίʔυͱ͍͏ͷ͕͋Δ⏳estimate: 7 /25
ᐆດ͞ʹ͍ͭͯ: shin1x1͞Μʮ੍ͷྗʯhttps://speakerdeck.com/shin1x1/restricting-states⏳estimate: 7~8 /25
ᐆດ͞ʹ͍ͭͯ: shin1x1͞Μʮ੍ͷྗʯhttps://speakerdeck.com/shin1x1/restricting-states⏳estimate: 8 /25
ᐆດ͞ʹ͍ͭͯ: t-wada͞Μͷʮ༧ʹউΔޚͳ͠ʯhttps://speakerdeck.com/twada/growing-reliable-code-phperkaigi-2022⏳estimate: 8 /25
ྑ͘ͳ͍ίʔυ͕͜͏ͯ͠ੜ·ΕΔͧ( )⏳estimate: 8~9 /25
ΤϥʔͱՄೳੑ❌ ⭕⏳estimate: 8~9 /25
͜ͷίʔυո͍͕͠ɾɾɾ⏳estimate: 9 /25
͜ͷίʔυո͍͕͠ɾɾɾPHP⏳estimate: 9~10 /25
§3.1.2⏳estimate: 9~10 /25
Α͘ͳͦ͞͏ͳίʔυΛආ͚ΔͨΊʹ⏳estimate: 10 /25
Τϥʔɺcase-by-case( ) ( )⏳estimate: 10 /25
࣮ྫʂϓϩάϥϛϯά( ) ⏳estimate: 10~11 /25
࣮ྫʂPHP( )
࣮ྫʂPHP: include E_WARNINGrequire E_ERROR https://www.php.net/manual/ja/function.include.php⏳estimate: 10~11 /25
ΤϥʔϨϕϧओ؍తʹܾ·Δ(ଆ໘͋Δ)⏳estimate: 11 /25
ίϨ͋ͳͨͷ؍ʹ߹͏ʁE_ERROR
ΤϥʔʹࣖΛ͚͍ͯ͜͏ʙ⏳estimate: 11 /25
ΤϥʔʹࣖΛ͚͍ͯ͜͏ʙ ⏳estimate: 11~12 /25
§4PRO
Τϥʔɺා͍Ͱ͔͢ʁ( )⏳estimate: 12 /25
ΤϥʔͷPRO͕ɺ͍ͬͯΔ͜ͱ ( ) ⏳estimate: 12~13 /25
Τϥʔ͕࣍ͷʮఆ֎ʯʮᐆດʯΛݺͿ()[ग़య] ᴷAndreas Zeller, தా लج, ࠓా ণ, େؠ ঘ, ా ߳බ, ٶݪ ٱඒࢠ, फܗ ࣿ৫ σόοάͷཧͱ࣮ફ ―ͳͥϓϩάϥϜ͏·͘ಈ͔ͳ͍ͷ͔ P3 - P4
όάʮൟ৩ʯ͢Δ1 1[ग़య] ᴷ Shore, James, Warden, Shane, ฏು ݈ࣇ, Լ ࢙, Ҫ ਸ࢘ ΞʔτɾΦϒɾΞδϟΠϧσϕϩοϓϝϯτ : ৫Λޭʹಋ͘ΤΫετϦʔϜϓϩάϥϛϯά P169
Τϥʔ͕ڭ͑ͯ͘ΕΔ͜ͱɾ͘Εͳ͍͜ͱ ⏳estimate: 13~14 /25
͖ͬ͞ͷίʔυ: Կ͕ਖ਼͍͠ʁ$taxRate1.8float0.8float80(%) int⏳estimate: 13~14 /25
ผͷྫ: ߏจΤϥʔ( )7 if{}if {} 🤮⏳estimate: 13~14 /25
ผͷྫ: ߏจΤϥʔɺ͜ΕͩͬͨΒͲ͏ݟ͑Δʁclass{}
ผͷྫ: ߏจΤϥʔɺݟͨͰมΘΒͳ͍҆৺ײ⏳estimate: 14 /25
Τϥʔͱྑ͘ͳΔʹPRO⏳estimate: 14~15 /25
Τϥʔఢ͡Όͳ͍ɺ༑ୡͳΜͩʂʂ →ͦͷ৺ʁ⏳estimate: 15~16 /25
Τϥʔͱྑ͘ͳΔͨΊͷίπ௫Έ·͠ΐ͏ʂ ( )=( )⏳estimate: 16 /25
§5PHP
§5 PHP.1.2⏳estimate: 16~17 /25
ϓϩάϥϛϯάʹͱͬͯΤϥʔॏཁ⏳estimate: 16~17 /25
PHPͲ͏͖ͯͨ͠ʁˠΑ͘ʹͳΔͭPHP5 -> PHP7Throwable/ErrorE_STRICT : E_NOTICE, E_WARNING, E_DEPRECATEDPHP7 -> PHP8warning -> ErrorPHP8 -> PHP9Error (8.2 Deprecated)Error
ᐆດ͞ͱͷઓ͍PHP⏳estimate: 17~18 /25
ᐆດ͞ͱͷઓ͍E_WARNING/E_NOTICE Error throwE_NOTICE (7.4 )E_NOTICE php.ini these are warningswhich often result from a bug in your code, but it's possiblethat it was intentional⏳estimate: 17~18 /25
php-src grep7.x NOTICEWARNING8.xWARNINGE_NOTICE/ E_WARNINGͷग़ݱgit --no-pager grep E_NOTICE -- 'ext/**/*.c' | wc -l
RFCͳͲPHP: rfc:engine_warnings https://wiki.php.net/rfc/engine_warningsPHP: rfc:consistent_type_errors https://wiki.php.net/rfc/consistent_type_errorsPull requests · php/php-src https://github.com/php/php-src/pulls?q=label%3A%22Warning+promotion%22PHP: rfc:undefined_property_error_promotion https://wiki.php.net/rfc/undefined_property_error_promotionPHP: rfc:undefined_variable_error_promotion https://wiki.php.net/rfc/undefined_variable_error_promotion
§5 PHP.1.2
͜Ε͔ΒͲ͏ͳΓͦ͏ʁNOTICE PHPError WARNING(DEPRECATED )TypeError/ValueError
͜Ε͔ΒͲ͏͍ͯ͘͠ʁPHP7.0⏳estimate: 20 /25
͜Ε͔ΒͲ͏͍ͯ͘͠ʁE_NOTICE/E_WARNING(`===` strict )PHPStan PsalmPHP⏳estimate: 21 /25
Τϥʔͱ্ख͖͘߹͏ͱɺ͕͠͞ݮΔPHP ⏳estimate: 21~22 /25
͓͠·͍ʂ͓͖߹͍͍͖ͨͩ ͋Γ͕ͱ͏͍͟͝·ͨ͠