はじめに
phpのテストを行う時、通常は
- DocumentRoot配下にtest.phpを作成する
- test.phpにテストをしたいコードを記述する
- test.phpを保存する
- ブラウザからtest.phpにアクセスする
- 出力内容を確認する
- test.phpを削除する
のように多くのプロセスが必要。php.iniの設定によってはエラーが出ているはずなのに表示されなかったり…本番環境の場合はtest.phpを消すの忘れたら大変だ…考慮しなければならないことが沢山あってテストだけでも一苦労。
そんな時に大活躍するのがphpコマンドだ。
お勧めのphpコマンド
# PHPのバージョンを確認する
php -v
# 読み込んでいるモジュールを表示する
php -m
# phpinfoを表示する※ボリュームがあるので、php -vやphp -mを積極的に使いたい
php -i
# 実行はしないでシンタックスチェックだけする
php -l test.php
必殺コマンドphp -a
ログのファイル名を作るのに、今の年-月-日-時-分-秒-マイクロ秒を取得したい。date_format(new DateTime(), 'Y-m-d-H-i-s-v')
あたりで取得されるはずなんだけど、さくっと動作確認したいな。
## 対話シェルを立ち上げる
user@host:~$ php -a
Interactive mode enabled
# 上述のコードをechoしてみる
php > echo date_format(new DateTime(), 'Y-m-d-H-i-s-v');
2019-08-06-12-19-20-357
# あ、末尾のvってマイクロ秒じゃなくてミリ秒だった!修正修正…
php > echo date_format(new DateTime(), 'Y-m-d-H-i-s-u');
2019-08-06-12-22-27-214692
# よし!うまく動いたぞ!!
# 対話シェルから抜ける
php > exit
user@host:~$
…
テストがとっても簡単になりました。
この対話シェルでは変数や関数も扱えるので、もっと本格的なテストもできそうです。