[EC-CUBE4]VSCode+PHP Debug(xdebug)로 EC-CUBE4를 디버깅(브레이크 포인트, 스텝 실행 등)

환경




#
버전


OS
우분투 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 디버그 확장 사용

  • 예와 같이 정리된 정보가 전무를 발견할 수 없다. . 미묘하게 가까운 정보를 배회하면서 직감을 의지해 시행착오해 어떻게든 할 수 있었습니다.
    평소 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 하지만 우분투는 /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

    좋은 웹페이지 즐겨찾기