[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-CUBE는 물론 PHP도 사용하지 않는 몸으로는 너무 고행하다. (T_T)
(
VSCode
굉장하다!라는 것을 알게 된 것은 수확!)절차
다음과 같은 절차를 수행합니다. 간이 되는 起動スクリプトの作成
와 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 스크립트를 작성합니다.
위치는 임의이지만 다음은 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.json
의 name
에 지정된 이름이 표시되므로 선택하고 실행 아이콘을 클릭하면 서버가 시작됩니다.시작하는 동안 여러 번 Deprecated 예외가 발생하여 불안해지지만 무시하면 문제가되지 않습니다 (?) 것 같습니다. 조작 패널에서 "계속"합니다.
예외 예
조작 패널
무시하는 방법
디폴트라면 Everything에 체크가 들어가 있으므로 제외합니다.
이하의 표시가 나오면 무사히 대기 상태가 되었습니다.
임의의 행에 중단점을 설정하여 변수 등을 확인할 수 있습니다. (라우팅 처리에서도 예외가 발생합니다)
미안해. m(_ _)m
Reference
이 문제에 관하여([EC-CUBE4]VSCode+PHP Debug(xdebug)로 EC-CUBE4를 디버깅(브레이크 포인트, 스텝 실행 등)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/s-katsumata/items/96df1ca3cf6043d49b53텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)