2
2

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 5 years have passed since last update.

[EC-CUBE4]VSCode+PHP Debug(xdebug)でEC-CUBE4をデバッグする(ブレークポイント、ステップ実行とか)

Last updated at Posted at 2019-05-19

環境

# バージョン
OS Ubuntu 18.04(LTS)
EC-CUBE 4.0.2
PHP 7.2.18
PHPライブラリ・拡張 システム要件(公式)を参照
xdebug 2.7.2 stable
VSCode 1.33.1
PHP DEBUG
※VSCodeのxdebug拡張
1.13.0
HTTPサーバ 簡易サーバ
EC-CUBE(の開発フレームワークSymfony)に同梱されている。
bin/console server:run で起動

やりたいこと

  • ローカル開発環境にセットアップしたEC-CUBE4のデバッグ
  • VSCode + PHP Debug拡張を利用

例のごとく整理された情報が皆無を発見できない。。微妙に近い情報を徘徊しながら直感を頼りに試行錯誤してなんとかできました。
普段、EC-CUBEはもちろんPHPも使わない身としては苦行すぎる。(T_T)
VSCode凄い!というのがわかったのは収穫!)

手順

以下のような手順を踏みます。肝となる起動スクリプトの作成launch.json以外はごく一般的な手順です。

  • PHP + ECCUBEセットアップ
  • XDEBUGのインストール
  • VSCODEのインストール
  • PHP DEBUG拡張のインストール
  • 起動スクリプトの作成
  • PHP DEBUG(launch.json)の設定
  • 実行

PHP + ECCUBEセットアップ

インストール手順(公式サイト)に従いします。
PHP環境構築は以下の記事を参考にして頂くとはやいかもです。

[EC-CUBE4]ワンライナー/必要なPHP拡張ライブラリのインストール - Qiita

XDEBUGのインストール

以下の記事を参考にさせて頂きました。php.iniやphp,xdebug.soのバージョンは異なります。

Xdebugのインストール – ABC Blog

Developper Packageのインストール

sudo apt install php7.2-dev

XDebugのインストール

sudo pecl install xdebug

PHP.ini設定

php.iniに以下を追記します。centosだと /etc/php.iniですが、ubuntuは/etc/php/7.2/cli/php.iniにあります。

/etc/php/7.2/cli/php.ini
zend_extension="/usr/lib/php/20170718/xdebug.so"    locate xdebug.so

; see http://xdebug.org/docs/all_settings
html_errors=on
xdebug.remote_autostart=on
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000

確認

$ php -i | grep xdebug 
xdebug
xdebug support => enabled
xdebug.auto_trace => Off => Off
~以下、省略~

VSCODEのインストール

公式サイトからダウンロードしてインストールします。

  • PHP DEBUG拡張のインストール

起動スクリプトの作成

以下のサーバ起動用のPHPスクリプトを作成します。
場所は任意でが以下はEC-CUBEを配置したルートディレクトリ直下に作成した例です。
スクリプト名(後述するlaunch.jsonで指定)も任意ですが、runserver.phpとしました。

/runserver.php
<?php
$cwd = getcwd();
$output = shell_exec( $cwd . '/bin/console server:run');
echo "<pre>$output</pre>";
?>

PHP DEBUG(launch.json)の設定

VSCodeのデバッグタブをクリックすると左上に歯車アイコンがあるのでクリックします。するとlaunch.jsonが開くので編集します。

launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Custom Xdebug setting",
      "type": "php",
      "request": "launch",
      "port": 9000,
      "program": "${workspaceRoot}/runserver.php",
      "cwd": "${workspaceRoot}"
    }
  ]
}

実行

以上で設定は完了です。

VSCodeのデバッグタブの構成リストにlaunch.jsonnameに指定した名前が表示されるので、選択して、実行アイコンををクリックするとサーバが起動します。

起動中に何度かDeprecated例外が発生して不安になりますが、無視して問題ない(?)ようです。操作パネルで「続行」します。
例外の例

操作パネル

無視する方法
デフォルトだとEverythingにチェックが入っているので外します。

以下の表示がでれば無事に待ち受け状態になりました。

任意の行にブレークポイントを設定して変数など確認できます。(ルーティング処理でも例外発生します)
おつかれさまでした。m(_ _)m

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?