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
PRO
September 14, 2019
Technology
0
670
はじめてのモダンPHP
polidog
PRO
September 14, 2019
Tweet
Share
More Decks by polidog
See All by polidog
小さな開発会社を作った理由(再)
polidog
PRO
0
150
React Server ComponentsでAPI不要の開発体験
polidog
PRO
1
480
小さな開発会社が受託開発に力を入れる理由
polidog
PRO
0
140
小さな開発会社を作った理由
polidog
PRO
1
3.2k
小さな開発会社がWebサービスを作る理由
polidog
PRO
1
710
トランザクションスクリプトは何がダメなのか?
polidog
PRO
2
3.8k
React初心者がHooksを理解するためにコードを読んでみた
polidog
PRO
0
560
object-mapperを作ってる話
polidog
PRO
0
350
2020年から始めるSymfonyフレームワーク
polidog
PRO
2
1.3k
Other Decks in Technology
See All in Technology
プロファイルとAIエージェントによる効率的なデバッグ / Effective debugging with profiler and AI assistant
ymotongpoo
1
150
Behind Postgres 18: The People, the Code, & the Invisible Work | Claire Giordano | PGConfEU 2025
clairegiordano
0
130
デザインとエンジニアリングの架け橋を目指す OPTiMのデザインシステム「nucleus」の軌跡と広げ方
optim
0
120
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
3
840
組織全員で向き合うAI Readyなデータ利活用
gappy50
0
300
OpenTelemetry が拡げる Gemini CLI の可観測性
phaya72
2
2.3k
Okta Identity Governanceで実現する最小権限の原則 / Implementing the Principle of Least Privilege with Okta Identity Governance
tatsumin39
0
170
だいたい分かった気になる 『SREの知識地図』 / introduction-to-sre-knowledge-map-book
katsuhisa91
PRO
3
1.4k
GraphRAG グラフDBを使ったLLM生成(自作漫画DBを用いた具体例を用いて)
seaturt1e
1
150
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
3
670
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
160
Kubernetes self-healing of your workload
hwchiu
0
530
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.8k
The Cult of Friendly URLs
andyhume
79
6.6k
Building an army of robots
kneath
305
46k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
930
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
The World Runs on Bad Software
bkeepers
PRO
72
11k
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Ͱ։ൃ͢Δҙຯ
࿑ಇ࣌ؒΛݮΒͨ͢Ί
ɹ?>