#phperkaigi 名著「パーフェクトPHP」のPart3に出てきたフレームワークを令和5年に書き直したらどんな感じですかね?
by
hideki kinjyo
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
PHP Part3 5 PHPerKaigi 2023 Hideki Kinjyo GitHub: o0h / Twitter: @o0h_ [ൃද൛]
Slide 2
Slide 2 text
ࣗݾհ / GitHub: @o0h / Twitter: @o0h_ FW CakePHP
Slide 3
Slide 3 text
⾠ΊͬͪΌग़ͯ͘Δ͚Ͳઆ໌͠ͳ͍֓೦ DI PSR PHP-FIG PSR-7/15/17, PSR-11 =>
Slide 4
Slide 4 text
༧Ίݴ͓ͬͯ͘͜ͱ ( ) https://speakerdeck.com/o0h/phperkaigi-2023
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
PHP HP https://gihyo.jp/book/2010/978-4-7741-4437-5
Slide 7
Slide 7 text
ॻ੶ͷجຊใ 2010 11 12 Part-1: PHP overview / Part 2: PHP / Part 3: Web / Part 4: PHP / Part5: PHP / Part 6: PHP / Appendix 10-11-12
Slide 8
Slide 8 text
ύʔϑΣΫτPHPͱࢲ PHP 2 1 PHP 1 PHP SQL MY ( )
Slide 9
Slide 9 text
ύʔϑΣΫτPHPͱΈͳ͞Μ ( ) PHP PHP 1,2
Slide 10
Slide 10 text
ύʔϑΣΫτPHPͱΈͳ͞Μ https://twitter.com/search?q= PHP https://qiita.com/search?q=" PHP" https://jp.mercari.com/search?keyword=" PHP"
Slide 11
Slide 11 text
ԿΑΓʮFWΛ࡞Δʯؚ͕·Ε͍ͯΔͷ͕()ྑ͍ Part-1: PHP overview / Part 2: PHP / Part 3: Web / Part 4: PHP / Part5: PHP / Part 6: PHP / Appendix ⏳estimate: 2 /40
Slide 12
Slide 12 text
PHP | http://blog.asial.co.jp/771 1
Slide 13
Slide 13 text
PHP | http://blog.asial.co.jp/771 1
Slide 14
Slide 14 text
;Γ͔͑Δ: ύʔϑΣΫτPHPԿΛ͘Εͨͷ͔ FW FW IT 1 ⏳estimate: 3 /40
Slide 15
Slide 15 text
PHP
Slide 16
Slide 16 text
ྩ5ʹ࠶ઓͯ͠ΈΔ : 10 : PHP PHP
Slide 17
Slide 17 text
͓͠ͳ͕͖ 1. PHP Part3 FW 2. 22 5 PHP 3. FW 4.
Slide 18
Slide 18 text
§1 FW - PHP Part3 -
Slide 19
Slide 19 text
ࡐ: ϛχϒϩά 1. 2. 3. 4. ⏳estimate: 5 /40
Slide 20
Slide 20 text
demo
Slide 21
Slide 21 text
શମతͳઃܭ MVC URL ⏳estimate: 6 /40
Slide 22
Slide 22 text
Slide 23
Slide 23 text
ϑϩϯτίϯτϩʔϥʔ(index.php)
Slide 24
Slide 24 text
ϧʔςΟϯά(Application) Application
Slide 25
Slide 25 text
ΞΫγϣϯͷσΟεύον(Application) Application ControllerAction ⏳estimate: 7.5 /40
Slide 26
Slide 26 text
ΞΫγϣϯͷσΟεύονᶄ(Application) Response
Slide 27
Slide 27 text
ΞΫγϣϯ(Controller) Request Model View
Slide 28
Slide 28 text
ϦΫΤετͷѻ͍ Request Session $_GET $_SESSION
Slide 29
Slide 29 text
DBΞΫηε(DbManager, Repository) Repository Controller SQL RDB DbManager PDO Repository ⏳estimate: 9.5 /40
Slide 30
Slide 30 text
ίϯςϯπͷඳը(View) View
Slide 31
Slide 31 text
αʔόʔฦ(Response) Response header() echo
Slide 32
Slide 32 text
૯ׅ MVC ⏳estimate: 11 /40
Slide 33
Slide 33 text
§2 PHP - 22 5 PHP -
Slide 34
Slide 34 text
ࣥච͞Εͨ࣌ͱࠓɺͲΜͳҧ͍͕͋Δͷ͔ FW MVC FW ⏳estimate: 11.5 /40
Slide 35
Slide 35 text
No content
Slide 36
Slide 36 text
No content
Slide 37
Slide 37 text
2010 PHP ⏳estimate: 12.5 /40
Slide 38
Slide 38 text
PSR-0 PHP6
Slide 39
Slide 39 text
namespace Standard Group
Slide 40
Slide 40 text
Rails FW GitHub
Slide 41
Slide 41 text
2010 HipHop Composer+Packagist
Slide 42
Slide 42 text
CI 2011 ⏳estimate: 14 /40
Slide 43
Slide 43 text
https://www.thoughtworks.com/content/dam/thoughtworks/documents/radar/ 2011/07/tr_technology_radar_vol_5_en.pdf
Slide 44
Slide 44 text
Twelve-Factor App
Slide 45
Slide 45 text
3 PHP5 Facebook Hack
Slide 46
Slide 46 text
PHP7 2 Phan PHPStan ⏳estimate: 15.5 /40
Slide 47
Slide 47 text
( )
Slide 48
Slide 48 text
1. ComposerͷొɾσϑΝΫτԽ PSR-0/4
Slide 49
Slide 49 text
2. ݎ࿚ͳίʔυͷཉٻ Hack PHP7( ) PHP8( ) ⏳estimate: 16.5 /40
Slide 50
Slide 50 text
3. FWʹΑΔ”ࢧ”͔Βͷʁ 10 Web ( ) DB ⏳estimate: 17.5 /40
Slide 51
Slide 51 text
§3 FW - 10 -
Slide 52
Slide 52 text
FW ⏳estimate: 19.5 /40
Slide 53
Slide 53 text
جຊํ FW (ORM View( etc) 美
Slide 54
Slide 54 text
நʹΑΔઃܭ: ґଘੑͷཧ FW DI ⏳estimate: 20.5 /40
Slide 55
Slide 55 text
γϯϓϦγςΟ: খ͞ͳׂΛΈ߹ΘͤΔ CI/ MVC Middleware Single Action(Controller)
Slide 56
Slide 56 text
ڻ͖Λ͑Δ࣮: ෆมੑɺܕݕࠪ (= )
Slide 57
Slide 57 text
૬ޓӡ༻ੑ: PSRͷॏࢹ FW PSR ⏳estimate: 23.5 /40
Slide 58
Slide 58 text
§4 FW - -
Slide 59
Slide 59 text
⏳estimate: 24 /40
Slide 60
Slide 60 text
No content
Slide 61
Slide 61 text
Δ͜ͱ FW FW : https://github.com/o0h/phperkaigi-2023 Zenn
Slide 62
Slide 62 text
Βͳ͍͜ͱ FW ( Logger Cache )
Slide 63
Slide 63 text
σΟϨΫτϦߏʹ͍ͭͯ FW ⏳estimate: 26.5 /40
Slide 64
Slide 64 text
FWίʔυͷґଘύοέʔδ FW PSR 11: Container 17: HTTP Factory 7: HTTP Message 15: HTTP Server Request Handlers
Slide 65
Slide 65 text
appίʔυͷґଘύοέʔδ FW repositories Composer ⏳estimate: 28.5 /40
Slide 66
Slide 66 text
Applicationͷ Application
Slide 67
Slide 67 text
ϛυϧΣΞϋϯυϥʔͷ࣮
Slide 68
Slide 68 text
Slide 69
Slide 69 text
Emitterͷ࣮ ( )Application PSR-7 Emitter HTTP ⏳estimate: 29.5 /40
Slide 70
Slide 70 text
ύʔϑΣΫτPHPͷॲཧ (ResponseΫϥε)
Slide 71
Slide 71 text
PSR-7ResponseΛ͏ॲཧ
Slide 72
Slide 72 text
ϛυϧΣΞͷ࣮ PSR-15 Middleware Interface ⏳estimate: 30.5 /40
Slide 73
Slide 73 text
PSR-7ͷServerRequestʹແ͍ SessionใΛ༩͢Δ (͘͢͝؆ૉͳ)Middlewareͷ࣮ྫ
Slide 74
Slide 74 text
ϧʔςΟϯάͷมߋ URL 1 ⏳estimate: 31.5 /40
Slide 75
Slide 75 text
ύʔϑΣΫτPHPͷॲཧ (ApplicationαϒΫϥε)
Slide 76
Slide 76 text
ActionΛىಈͤ͞ΔϧʔςΟϯά (routes.php)
Slide 77
Slide 77 text
Actionͷ Action (PSR-7) (PSR-7) ⏳estimate: 32 /40
Slide 78
Slide 78 text
Actionͷࣄʹඞཁͳґଘͷղܾ Action RoutingMiddleware DI Action PSR-11 DI DI PSR-11 (=get(), has())
Slide 79
Slide 79 text
Ϋϥεʹɺ શͯͷActionͰڞ௨ͷॲཧΛهड़͠·͢
Slide 80
Slide 80 text
ࢠΫϥεݻ༗ͷॲཧɺ `depends()`ͱ͍͏ϝιουΛ༻ҙͯ͠ ґଘΛهड़Ͱ͖ΔΑ͏ʹ͠·ͨ͠
Slide 81
Slide 81 text
depends()ɺ୯ͳΔηολʔͰ͢ ࿈ྻͷల։(໊લ͖Ҿ)Λར༻͍ͯ͠·͢
Slide 82
Slide 82 text
: Action Attribute
Slide 83
Slide 83 text
Τϥʔϋϯυϥʔͷ࣮ 1 try-catch PSR-15 Speci fi cation RECOMMENDED ⏳estimate: 34 /40
Slide 84
Slide 84 text
ྫ֎Λัଊͯ͠ɺ ࣗͰResponseΛΈཱͯͯฦ͔͢ `ErrorAction`ʹॲཧΛ͢
Slide 85
Slide 85 text
ͦͷଞʹ͓͖͍͑ͯͨϙΠϯτ ( ) PSR-7/PSR-17 PSR-11 DI PSR-4 Autoloader ⏳estimate: 34 /40
Slide 86
Slide 86 text
ͦͷଞʹ͓͖͍͑ͯͨϙΠϯτ PHP CSRF : Laravel/CakePHP/Slim CSRF
Slide 87
Slide 87 text
ͦͷଞʹ͓͖͍͑ͯͨϙΠϯτ psr/***-implementation https://github.com/middlewares/psr15-middlewares
Slide 88
Slide 88 text
No content
Slide 89
Slide 89 text
ࠓճΓ͔ͨͬͨ͜ͱɺͲ͏Ͱͨ͠ʁ PHP 10 MVC Composer PSR DI /TDD PSR ⏳estimate: 37 /40
Slide 90
Slide 90 text
ࠓճΓ͔ͨͬͨ͜ͱɺͲ͏Ͱͨ͠ʁ FW PHP
Slide 91
Slide 91 text
Zennॻ͜͏ͱͯ͠Δɾɾɾ ( )
Slide 92
Slide 92 text
͓͠·͍ʂ ͓͖߹͍͍͖ͨͩ ͋Γ͕ͱ͏͍͟͝·ͨ͠
Slide 93
Slide 93 text
§X Appendix
Slide 94
Slide 94 text
ίϛϡχςΟʹੵ͞Ε͍ͯΔݟ https://daisuki.nichiyoubi.land/entry/2023/03/11/221306
Slide 95
Slide 95 text
૬ޓӡ༻ੑɺඪ४ͷେࣄ͞ PSR sizuhiko https://speakerdeck.com/sizuhiko/phpcon-fukuoka-2019
Slide 96
Slide 96 text
PSR-7 PSR-7 sasezaki https://www.slideshare.net/sasezaki/httpphp
Slide 97
Slide 97 text
PSR-7Λத৺ͱͯ͠PSR HTTPγϦʔζ PSR-7 https://speakerdeck.com/tanakahisateru/17ninatutafalseka
Slide 98
Slide 98 text
PSR-15/ϛυϧΣΞͷ۩ମɾ࣮ https://tadsan.fanbox.cc/posts/3674121 https://speakerdeck.com/n1215/psr-15-request- handlerkarali-jie-surumiddlewarefalseshi-zu-mi
Slide 99
Slide 99 text
DI / DIίϯςφ DI DI PHPerKaigi2021 https://speakerdeck.com/rukiadia/understand- dependency-injection-of-php https://speakerdeck.com/hiro_y/php-di-with- attributes
Slide 100
Slide 100 text
DIίϯςφͷ۩ମɾ࣮ DI 2021 https://tadsan.fanbox.cc/posts/2061773
Slide 101
Slide 101 text
FWൣ FW PHPerKaigi2018 https://www.youtube.com/watch?v=mW4a2BKM3Kg