##はじめに
皆さんこんにちは。
皆さんREPL
使ってる方が多いと思います。
Ruby
のirb
とかpry
とかが有名ですね。
私はPHP
をよく書きますが、昨年までPHP
のREPL
使いたいなーと思ってました。
PHP
使いの人はもう既にご存知の人が多いかと思いますが、PsySH
を知って感動したので、そのお話をしたいと思います。
REPLって
はてなキーワードによると、
Read-eval-print loopの略
字のごとく読んで評価して表示して繰り返す。対話型評価環境を指す。ただし、インタープリタと同義ではない。
多くの関数型言語やスクリプト言語では利用出来る。
とのことです。
デバッグだったり、ちょっとした試しコードを書きたい場合などに、コンソール上でささっとリアルタイムにコードを実行出来るのが特徴です。
PHP
の従来の方法だと、PHP5.1
以降からPHP -A
で対話的に利用できるシェルを実行できる機能があったみたいです(当時は知らなかったw)。
自分はRuby
でirb
とpry
であるのを知っていて実際に使っていたのでPHP
でも使いたいなーと思っていた次第です。
PsySHのインストール
公式サイトはこちら。
インストールは簡単に出来ました。
composer
で入れればすぐです。
$ php composer.phar require psy/psysh
$ ./vendor/bin/psysh
使い方
これは実際に起動するとなんとなくわかると思います。
わかりやすいgif
が参考記事に載せられていたので引用させて頂きます。
対話的にPHP
コードを実行できるので、直接入力して実行すれば結果を返してくれます。
ちなみに、ここではセミコロンを打たなくても実行できます!エラーが出ません!これは良い!
関数を試しに使ってみたいという場合などに私はよく使います。一時的なテストファイルを作成しないでも結果がみれるのは便利ですね。
使ってみるとはまると思いますよ。
PsySHの特徴
PsySHは以下のような機能を持っているようです。
(実際に動かしたこと無い機能もあります;)
・docコマンド:ドキュメント表示
・listコマンド:コンテキスト内の変数・関数の一覧表示
・showコマンド:読み込み済みのコード表示
・wftコマンド:例外の情報表示
おわりに
もしPHP
を使っていて、まだPHP -A
でデバッグしている方がいらっしゃいましたら、是非こちらを試してみてください。
ちなみに、Laravel5
には標準で組み込まれているようなので使ってみてください。
当時の自分は使って感動しましたw
何か便利機能があれば教えて頂ければと思います。
参考資料
今回は以下の記事を参考にさせて頂きました。ありがとうございました!
PHPのちょっとしたデバッグを簡単に。PsySH の使い方
ENGINE YARD BLOG