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
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コードレビューで開発を楽しもう
moongift
PRO
0
7
AIで急増した生産「量」の荒波をCodeRabbitで乗りこなそう
moongift
PRO
0
52
Codexとも仲良く。CodeRabbit CLIの紹介
moongift
PRO
1
450
リレーションからマーケティングへ。継続するDevRelのために行うべきこと
moongift
PRO
0
8
開発スピードとスキル向上を両立するAIコードレビューの活かし方
moongift
PRO
0
72
個人開発にAIレビューを導入しよう
moongift
PRO
0
47
AIによるコードレビューで開発体験を向上させよう!
moongift
PRO
0
850
AIによるコードレビューで開発体験を向上させよう!
moongift
PRO
0
1.3k
開発スピードとスキル向上を両立するAIコードレビューの活かし方
moongift
PRO
0
71
Other Decks in Technology
See All in Technology
re:Invent 2025の見どころと便利アイテムをご紹介 / Highlights and Useful Items for re:Invent 2025
yuj1osm
0
640
DMMの検索システムをSolrからElasticCloudに移行した話
hmaa_ryo
0
350
OPENLOGI Company Profile for engineer
hr01
1
46k
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
440
re:Inventに行くまでにやっておきたいこと
nagisa53
0
980
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
450
実践マルチモーダル検索!
shibuiwilliam
3
540
DMARCは導入したんだけど・・・現場のつぶやき 〜 BIMI?何それ美味しいの?
hirachan
1
110
AI時代の発信活動 ~技術者として認知してもらうための発信法~ / 20251028 Masaki Okuda
shift_evolve
PRO
1
140
AIエージェントを導入する [ 社内ナレッジ活用編 ] / Implement AI agents
glidenote
1
120
AWS DMS で SQL Server を移行してみた/aws-dms-sql-server-migration
emiki
0
280
Raycast AI APIを使ってちょっと便利なAI拡張機能を作ってみた
kawamataryo
0
240
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
7k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
A designer walks into a library…
pauljervisheath
209
24k
Docker and Python
trallard
46
3.6k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
How GitHub (no longer) Works
holman
315
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Optimizing for Happiness
mojombo
379
70k
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
͕͑ΔΜͩͬͯʂ