Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのモダンPHP
Search
polidog
September 14, 2019
Technology
0
560
はじめてのモダンPHP
polidog
September 14, 2019
Tweet
Share
More Decks by polidog
See All by polidog
小さな開発会社を作った理由
polidog
1
2.4k
小さな開発会社がWebサービスを作る理由
polidog
1
540
トランザクションスクリプトは何がダメなのか?
polidog
2
2.9k
React初心者がHooksを理解するためにコードを読んでみた
polidog
0
490
object-mapperを作ってる話
polidog
0
300
2020年から始めるSymfonyフレームワーク
polidog
2
1.2k
ソフトウェア設計は難しくない
polidog
3
960
柔軟なアプリケーションをSymfonyで作るために考えている事
polidog
1
3k
Symfonyのキャッシュについて
polidog
2
650
Other Decks in Technology
See All in Technology
なぜCodeceptJSを選んだか
goataka
0
160
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
570
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
170
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
130
PHPerのための計算量入門/Complexity101 for PHPer
hanhan1978
5
130
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
ハイテク休憩
sat
PRO
2
160
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
0
190
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
Wantedly での Datadog 活用事例
bgpat
1
480
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
110
2024年にチャレンジしたことを振り返るぞ
mitchan
0
140
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
GraphQLとの向き合い方2022年版
quramy
44
13k
Designing for Performance
lara
604
68k
Agile that works and the tools we love
rasmusluckow
328
21k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
RailsConf 2023
tenderlove
29
940
Navigating Team Friction
lara
183
15k
Into the Great Unknown - MozCon
thekraken
33
1.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Transcript
͡ΊͯͷϞμϯPHP Shizuoka.php #1 2019/09/14 @polidog
ࣗݾհ • @polidog • ౦ژࡏॅɺग़ਗ਼ਫ۠ • ύʔςΟʔϋʔυגࣜձࣾ औకɾϓϩάϥϚ • ͖ͳϑϨʔϜϫʔΫSymfony
• ࠷͍͍ۙͨϑϨʔϜϫʔΫBEAR Sunday • Vueͪΐ͍ͪΐ͍ॻ͍ͯ·͢
ϞμϯPHP?
None
http:// ja.phptherightway.com/
PHP The Right Way • ؾܰʹಡΊΔ(?)ΫΠοΫϦϑΝϨϯε • ϕετϓϥΫςΟε • ֤ݴޠʹ༁͞Ε͍ͯΔ(ͪΖΜຊޠ͋
Δ) • ϞμϯͷجૅͱͳΔ͜ͱ͕ࡌ͍ͬͯΔ
18ݸͷϓϥΫςΟε • ͡Ίʹ • ίʔσΟϯάελΠϧ • ݴޠ༷ͷϙΠϯτ • ґଘؔͷཧ •
ίʔσΟϯάʹؔ͢Δश׳ • ґଘੑೖ • σʔλϕʔε • ςϯϓϨʔτ • Τϥʔͱྫ֎ॲཧ • ηΩϡϦςΟ • ςετ • ֤छαʔόͷσϓϩΠ • ԾԽ • Ωϟογϡ • Documenting your CodeʢPHPDocʣ • ใݯ • ίϛϡχςΟ
ίʔσΟϯάελΠϧ
PSR1,2,4 • PSR1جຊίʔσΟϯάن • PSR2ίʔσΟϯάελΠϧΨΠυ • PSR4ΦʔτϩʔσΟϯάελϯμʔυ • ৄ͍͜͠ͱ͜ͷهࣄΛࢀর https://qiita.com/tadsan/items/
942a381e952e12a8fa5a
phpcs(PHP CodeSniffer) • ίʔυ͕४ڌ͍ͯ͠Δ͔νΣοΫͰ͖Δ • PHPStormvscodeͱ࿈ܞͰ͖Δ https://qiita.com/suin/items/ 8f00ccd58f0464fb9791 • phpcbfΛͬͯίʔυΛमਖ਼
php-cs-fixer • PSR1,2, SymfonyίʔσΟϯάنʹԊͬͨܗʹ मਖ਼ͯ͘͠ΕΔ • @PSR1,@PSR2,@SymfonyͳͲͷϧʔϧηοτ https://github.com/FriendsOfPHP/PHP-CS- Fixer/blob/ 681806863baec9d874dae95dd0f9eb3db44e
9b90/src/RuleSet.php
ґଘؔͷཧ
Comopser • npmbundlerΈ͍ͨͳͷ • composer.jsonʹґଘؔΛهड़͢Δ • PEAR͏5Ҏ্͍ͬͯͳ͍ • ຊ͔Βͩͱ͍ https://qiita.com/keitakn/items/
37f0fac49442b72c403e
None
Packagist • https://packagist.org/ • PHPͷύοέʔδΛ୳͢ҝͷαΠτ
None
ύοέʔδͷߋ৽ʹ͍ͭͯ • libraries.ioΛ͏ https://libraries.io/ • ηΩϡϦςΟνΣοΫSecurity Advisories CheckerΛ͏ https://security.symfony.com/
ґଘੑೖ
ґଘੑೖ • ӳޠͩͱDIͱ͔Dependency Injectionͱ͔ݴΘΕΔͭ • ࠷ۙͷϑϨʔϜϫʔΫʹDI͕͍͍ͩͨ༻ҙ͞Ε͍ͯΔ • ͍͠ͷͰଞͷDIͷઆ໌ΛಡΉ͖ https://polidog.jp/2019/06/08/di/
https://qiita.com/ritukiii/items/ de30b2d944109521298fɹ
ςετ
PHPUnitͰϢχοτςετΛॻ͘ • ϢχοτςετΫϥεϝιου͕ظ௨Γʹಈ͍͍ͯ Δ͔Λ։ൃதʹ͔֬ΊΔɻ • ςετํ๏ೋ௨Γ • ೖग़ྗͷظΛςετ͢Δ • ৼΔ͍Λ͔֬ΊΔͨΊͷςετ
• ςετͷจԽ͕ͳ͍ͷͳΒϢχοτςετΛ·ͣॻ͍ ͍ͯ͘ࣄ͕ॏཁ
Prophecy • ϞοΫΦϒδΣΫτϑϨʔϜϫʔΫ • εύΠํࣜͰςετͰ͖Δ • ࢀߟ https://qiita.com/Hiraku/items/ 326b58c586a134d2ea74
None
None
σϓϩΠ
DeployerΛ͏ • PHPͷσϓϩΠπʔϧ • σϓϩΠ༻ͷλεΫΛఆٛ͢Δ • ίϚϯυΛ࣮ߦ͢Δ͚ͩͰσϓϩΠͰ͖Δ • ֤छϑϨʔϜϫʔΫ༻ͷϨγϐ͕༻ҙ͞Ε͍ͯΔ •
جຊతͳ͍ํ https://www.tam-tam.co.jp/tipsnote/tool/post17066.html
CIΛͬͨσϓϩΠ • CIΛͬͯdeployerΛಈ͔͢ • ྫ͑CircleCIΛ͏߹ https://tech.quartetcom.co.jp/2017/01/04/ deployer-on-circleci/
ฐࣾͷσϓϩΠϑϩʔ PRͷ࡞ ϚʔδϘλϯԡ͢ deployer slackʹ௨
None
࠷ޙʹ
ϞμϯPHPͰ։ൃ͢Δҙຯ
࿑ಇ࣌ؒΛݮΒͨ͢Ί
ɹ?>