0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WardenでCLI機能のデバッグをする

Posted at

WardenはMagentoやSymfony系の開発をする際、必要になるコンテナ一式や開発用の証明書などをセットで用意してくれる便利なツールです。
もちろんXdebugを使ってリモートデバッグもできるわけですが、CLI機能のデバッグは標準では用意されていません。

Gistで書いてくれてる人がいる

軽く調べてみると、Gistがヒットしました。

そのものズバリなものがあります(アリガタヤ)。
というわけでこの例に沿ってやってみましょう。

clixdebug.cmd を所定のパスに作成する

手順に沿って、

/usr/local/Cellar/warden/[x.x.x]/commands/clixdebug.cmd

にファイルを作成し、Gistに書かれているスクリプトを貼り付けます。
バージョン番号は使っているWardenのバージョン番号に読み替えましょう。

基本、WardenはMac用なので、WindowsやLinuxで使っている人も自分の環境に合わせて適当に読み替えてください。

動かしてみる

ファイルの作成ができたら、

warden clixdebug 実行ファイル名 [パラメータ]

を試します。
今回試したのはMagentoコマンドなので、

warden clixdebug bin/magento mycmd:exec

というようになります。もちろん他のサブコマンドでも可ですね。
なお、動作検証する際はIDE側でブレークポイントを張っておきましょう。
私の場合は既にブラウザでのデバッグ用にPHPStormで設定ができているので、単にブレークポイントを設定するだけでした。

おや?動かない・・・

clixdebugを動かしてみると、ターミナル上に

This script is not intended to be run directly!

というメッセージが出ます。
調べてみたところ、私が使っているWarden-0.9.1では、clixdeug.cmdの内容は、

[[ ! ${WARDEN_COMMAND} ]] && >&2 echo -e "\033[31mThis script is not intended to be run directly!" && exit 1

ではなく

[[ ! ${WARDEN_DIR} ]] && >&2 echo -e "\033[31mThis script is not intended to be run directly!" && exit 1

と書かないといけないようです。
よくあるアップデートに伴う仕様変更か、あるいは元ファイルの作者のミスかもしれません。
いずれにしても、スクリプトを修正することで無事動作するようになりました。

これでCLIツール実装時のデバッグもはかどりますね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?