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_CodeSnifferを使ってPHPのコードをオートレビューしてみた.pdf
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Atsushi Nakatsugawa
PRO
May 31, 2017
Technology
1
190
PHP_CodeSnifferを使ってPHPのコードをオートレビューしてみた.pdf
第114回 PHP勉強会@東京でLT発表した際の資料です。
Atsushi Nakatsugawa
PRO
May 31, 2017
Tweet
Share
More Decks by Atsushi Nakatsugawa
See All by Atsushi Nakatsugawa
AI時代のIssue駆動開発のススメ
moongift
PRO
0
260
プロダクト開発の品質を守るAIコードレビュー:事例に見る導入ポイント
moongift
PRO
1
2.6k
AIで急増した生産量の荒波をCodeRabbitで乗りこなそう
moongift
PRO
1
75
AIによるコードレビューで 開発体験を向上させよう!
moongift
PRO
0
61
レビュー負債を解消する ― CodeRabbitが支えるAI駆動開発
moongift
PRO
0
630
個人開発からエンプラまで。AIコードレビューで開発を楽しもう
moongift
PRO
0
440
AIで急増した生産「量」の荒波をCodeRabbitで乗りこなそう
moongift
PRO
1
1.6k
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
1
960
リレーションからマーケティングへ。継続するDevRelのために行うべきこと
moongift
PRO
0
44
Other Decks in Technology
See All in Technology
スケーリングを封じられたEC2を救いたい
senseofunity129
0
100
AWS Systems Managerのハイブリッドアクティベーションを使用したガバメントクラウド環境の統合管理
toru_kubota
0
170
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
450
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
110
韓非子に学ぶAI活用術
tomfook
3
1k
Phase06_ClaudeCode実践
overflowinc
0
2.2k
The essence of decision-making lies in primary data
kaminashi
0
110
タスク管理も1on1も、もう「管理」じゃない - KiroとBedrock AgentCoreで変わった“判断の仕事”
yusukeshimizu
0
110
Astro Islandsの 内部実装を 「日本で一番わかりやすく」 ざっくり解説!
knj
0
290
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
120
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
250
スピンアウト講座01_GitHub管理
overflowinc
0
1.5k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Six Lessons from altMBA
skipperchong
29
4.2k
Automating Front-end Workflow
addyosmani
1370
200k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
120
Mobile First: as difficult as doing things right
swwweet
225
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
690
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
320
Crafting Experiences
bethany
1
94
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
230
Transcript
[Confidential] © 2016 Actcat, Inc. PHP_CodeSnifferΛͬͯPHPͷ ίʔυΛΦʔτϨϏϡʔͯ͠Έͨ MOONGIFT/SideCIΤϰΝϯδΣϦετ தಞ࢘ ୈ114ճ
PHPษڧձˏ౦ژ
[Confidential] © 2016 Actcat, Inc. ࣗݾհ 2 !B@OBLBUTVHBXB GCNFNPPOHJGU தಞ࢘
גࣜձࣾ.00/(*'5දऔక 4JEF$*/$.#9PKPIJpWFΤϰΝϯδΣϦετ ៉ྷͳίʔυͱจԽΛ࡞ΔίʔυϨϏϡʔ༻$* !TJEFDJ@KBQBO GCNFTJEFDJ
[Confidential] © 2016 Actcat, Inc. PHP_CodeSnifferͱʁ ▪نʁ Generic PEAR
PSR1 PSR2 Squiz Zend 3 ▪ PHPͷίʔυΛنʹ߹͍ͬͯΔ͔νΣοΫͯ͘͠ΕΔπʔϧ http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md ͳ͘ͳͬͨʁʁ https://framework.zend.com/manual/1.12/ja/coding-standard.overview.html ։ൃݩ
[Confidential] © 2016 Actcat, Inc. Πϯετʔϧ 4 ▪ComposerΛ͏ͷ͕Ұ൪खܰ $ composer
global require "squizlabs/php_codesniffer=*" wgetͰՄ $ curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar $ php phpcs.phar -h $ curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar $ php phpcbf.phar -h
[Confidential] © 2016 Actcat, Inc. ͍ํ 5 ▪phpcs + σΟϨΫτϦ
$ phpcs . FILE: /path/to/your/code.php -------------------------------------------------------------------------------------------------- FOUND 61 ERRORS AFFECTING 38 LINES -------------------------------------------------------------------------------------------------- 2 | ERROR | [ ] Missing file doc comment 7 | ERROR | [ ] Missing @category tag in class comment ɿ 34 | ERROR | [x] Tag value indented incorrectly; expected 2 spaces but found 1 35 | ERROR | [ ] Tag cannot be grouped with parameter tags in a doc comment
[Confidential] © 2016 Actcat, Inc. ίʔσΟϯάنͷ֬ೝ 6 ▪-iͰ֬ೝͰ͖·͢ $ phpcs
-i The installed coding standards are MySource, PEAR, PSR1, PSR2, Squiz and Zend
[Confidential] © 2016 Actcat, Inc. ίʔσΟϯάنͷมߋ 7 ▪—standardͰࢦఆͰ͖·͢ $ phpcs
—standard Zend .
[Confidential] © 2016 Actcat, Inc. ίʔυ֬ೝ͢Δ߹ 8 ▪--report=codeΛ͚ͭΔ $ phpcs
--report=code FILE: /path/to/your/code.php --------------------------------------------------------------------------------------------------- FOUND 61 ERRORS AFFECTING 38 LINES --------------------------------------------------------------------------------------------------- LINE 2: ERROR [ ] Missing file doc comment --------------------------------------------------------------------------------------------------- 1: <?php >> 2: 3: namespace·Ncmb; 4:
[Confidential] © 2016 Actcat, Inc. ࢦఠʹ߹Θͤͯमਖ਼͍ͯ͘͠ 9 ▪phpcbfͰ·ͱΊͯमਖ਼Ͱ͖Δ $ phpcbf
. PHPCBF RESULT SUMMARY --------------------------------------------------------------------------------------------------- FILE FIXED REMAINING --------------------------------------------------------------------------------------------------- /path/to/your/code.php 23 38
[Confidential] © 2016 Actcat, Inc. ࣗಈमਖ਼ͷ ▪ίϝϯτࣗಈͰೖྗ͞Εͳ͍ͷͰΤϥʔ ͱͯ͠Γଓ͚·͢ɻ ͪΌΜͱίϝϯτΛॻ͖·͠ΐ͏ʂ 10
▪@ܥࣗಈૠೖ͞Ε·ͤΜ
[Confidential] © 2016 Actcat, Inc. ͱ͋ΔϓϩδΣΫτͰࢼͨ݁͠Ռ ▪ଞͷࢦఠೲಘͰ͖ΔͷҰ෦͋Δʢۭ നͱ͔ʣ ▪نʹΑͬͯ࠷ޙͷ ?>
ʹ͍ͭͯղऍ͕ҟͳ Δ ▪phpcbfͰमਖ਼Ͱ͖ͪΌ͏͚Ͳ…Ͷ͐ʁ 11 ▪ίϝϯτͷറΓ͕ਏ͍͕࣌͋Δ…
[Confidential] © 2016 Actcat, Inc. SideCIʹ͍ͭͯ ▪PHP_CodeSnifferʹରԠ͍ͯ͠·͢ʂPull RequestΛૹΔ ͱࣗಈͰνΣοΫ࣮ߦ 12
▪SideCIࣗಈͷιʔείʔυϨϏϡʔαʔϏεͰ͢ https://sideci.com/ja
[Confidential] © 2016 Actcat, Inc. ϓϦʔζɺπΠʔτ or τΡʔτʂ 13 4JEF$*ɺ1)1@$4
͕͑ΔΜͩͬͯʂ