Slide 1

Slide 1 text

© 2012-2023 BASE, Inc. 2023/03/25 PHPerKaigi2023 LT PsySHを使った効率的なデバッグ方法について

Slide 2

Slide 2 text

© 2012-2023 BASE, Inc. 2 氏名:Futoshi Endo 所属:BASE株式会社 業務:バックエンド エンジニア 趣味:料理、音楽鑑賞、ゲーム PHP歴は6年。 好きなPHPの関数は array_map です。 ● Endo Tech Blog ● https://scrapbox.io/fendo181/ Fendo181 自己紹介

Slide 3

Slide 3 text

© 2012-2023 BASE, Inc. 今日の本題

Slide 4

Slide 4 text

© 2012-2023 BASE, Inc. 今日の本題 4 var_dump したけど ほしかった情報が 出てなかった...。 別の箇所でもう一度 var_dumpさせよう Xdebugの リモートデバッグを試そう としたけど、思った以上に 設定に時間がかかるなぁ... こんな経験ありませんか?

Slide 5

Slide 5 text

© 2012-2023 BASE, Inc. 今日の本題 5 debugの為にdebugしている...ってコト!?

Slide 6

Slide 6 text

© 2012-2023 BASE, Inc. 今日の本題 6 PsySHの良さを伝えにきました

Slide 7

Slide 7 text

© 2012-2023 BASE, Inc. アジェンダ

Slide 8

Slide 8 text

© 2012-2023 BASE, Inc. アジェンダ 8 ● PsySHの紹介 ● 基本的な使い方について ● おすすめのデバッグ方法 ● まとめ ● (参考文献の紹介)

Slide 9

Slide 9 text

© 2012-2023 BASE, Inc. PsySHの紹介

Slide 10

Slide 10 text

© 2012-2023 BASE, Inc. PsySHの紹介 10 ● PsySH is a runtime developer console, interactive debugger and REPL for PHP. ○ REPL(Read-Eval-Print Loop) ○ 2012年の6月からプロジェクトが開始されていた ■ http://justinhileman.info/projects/ ● PsySHはPHPの対話型シェル(REPL)であり、コードを実行しながら対話的にデバッ グや開発を行うことができる。 ● コードを行単位で評価し結果を直接表示することができて、変数や関数オブジェクト の状態を確認する事ができて、デバッグがしやすくなる。 ● Rubyだと binding.irb がイメージしやすい ○ https://github.com/ruby/irb

Slide 11

Slide 11 text

© 2012-2023 BASE, Inc. PsySHの紹介 11 (https://github.com/ruby/irb) irb の例

Slide 12

Slide 12 text

© 2012-2023 BASE, Inc. PsySHの紹介 12 Psyshで同様の事を実行した例

Slide 13

Slide 13 text

© 2012-2023 BASE, Inc. PsySHの紹介 13 (https://github.com/ruby/irb)

Slide 14

Slide 14 text

© 2012-2023 BASE, Inc. 基本的な使い方について

Slide 15

Slide 15 text

© 2012-2023 BASE, Inc. 基本的な使い方について 15 インストール方法

Slide 16

Slide 16 text

© 2012-2023 BASE, Inc. 基本的な使い方について 16 呼び出し方について スクリプト内で呼び出す方法 ターミナルから呼び出す方法

Slide 17

Slide 17 text

© 2012-2023 BASE, Inc. 基本的な使い方について 17 var_dumpでデバッグした例

Slide 18

Slide 18 text

© 2012-2023 BASE, Inc. 基本的な使い方について 18 var_dumpでデバッグした例

Slide 19

Slide 19 text

© 2012-2023 BASE, Inc. 基本的な使い方について 19 psyshでデバッグした例

Slide 20

Slide 20 text

© 2012-2023 BASE, Inc. 基本的な使い方について 20 psyshでデバッグした例

Slide 21

Slide 21 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法

Slide 22

Slide 22 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法について 22

Slide 23

Slide 23 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法について 23 lsを使ってみる

Slide 24

Slide 24 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法について 24 lsを使ってみる

Slide 25

Slide 25 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法について 25 showを使ってみる

Slide 26

Slide 26 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法について 26 showを使ってみる

Slide 27

Slide 27 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法について 27

Slide 28

Slide 28 text

© 2012-2023 BASE, Inc. おすすめのデバッグ方法について 28 「$_ 」で直近の結果が取得できる

Slide 29

Slide 29 text

© 2012-2023 BASE, Inc. まとめ

Slide 30

Slide 30 text

© 2012-2023 BASE, Inc. 30 まとめ ● PsySHについて紹介しました ● PsySHを使う事で対話的にデバッグができて、素早く検証が出 来る! ● 「PHPStorm + Xdebug」でも素早くデバッグができるが ちょっとした検証であれば PsySH でも十分に良い ○ PHPで競技プログラミングをやっていると凄い助かる ● デバッグ方法を極めて良い PHPer Lifeを!

Slide 31

Slide 31 text

© 2012-2023 BASE, Inc. 31 Thanks for listening !

Slide 32

Slide 32 text

© 2012-2023 BASE, Inc. 参考文献

Slide 33

Slide 33 text

© 2012-2023 BASE, Inc. 33 参考文献 ● https://github.com/bobthecow/psysh ● https://www.sitepoint.com/interactive-php-debugging-psysh/ ● http://justinhileman.info/projects/ ● https://github.com/bobthecow/psysh/wiki/Magic-variables ● https://www.phper.ninja/entry/2015/11/10/031000 ● https://github.com/bobthecow/psysh/wiki/Commands