정보실

웹학교

정보실

php Xdebug 및 VsCode로 PHP를 디버깅 하는 방법 알아보기

본문

웹 응용 프로그램을 개발하기로 결정하면 부드러운 최종 제품을 만들기 위해 몇 가지 사항을주의해야합니다. 

좋은 개발자는 항상 모범 사례를 선택하고 강력한 앱을 개발합니다. 

이러한 관행에는 웹 사이트 또는 응용 프로그램의 테스트, 디버깅, 성능 및 보안이 포함됩니다. 

이전 기사에서는 위의 주제 중 몇 가지를 다루었습니다. 이 기사에서는 PHP 코드의 PHP 디버그 개념과 기술에 대해 설명합니다.


https://www.cloudways.com/blog/php-debug/ 


Xdebug 및 VsCode를 사용하여 PHP 디버그 프로세스를 수행하는 방법 


print_r (), var_dump () 명령을 사용하여 PHP 코드를 작성하여 작성된 코드의 출력을 디버깅하는 기본 수준부터 시작하겠습니다. 

이 기능은 코드 오류시 올바른 출력 또는 오류 / 경고를 보여줍니다. 이 PHP 디버깅 기술은 기본이지만 여전히 사용되고 있습니다.


PHP의 에러 로그 


PHP 용 웹 호스팅의 개발 환경에서 작업하는 경우 PHP에서 발생하는 오류 로그를 브라우저에서 빠르게 확인할 수 있도록 오류 보고 기능이 켜져 있어야 합니다. 

php.ini 파일 및 개별 PHP 파일에서 오류 로그를 활성화 / 비활성화 할 수 있습니다. 다른 모범 사례는 항상 프로젝트에서 구성 파일을 작성하는 것입니다.


php.ini 파일에서 쉽게 활성화 할 수 있습니다. 제거해야 한다는 것을 기억하십시오. 각 출발 선에서.


  1. error_reporting = E_ALL & ~E_NOTICE
  2. error_reporting = E_ALL & ~E_NOTICE | E_STRICT
  3. error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
  4. error_reporting = E_ALL & ~E_NOTICE

개별 파일에서 현재 호출에 대해 PHP 오류 로깅을 활성화하려면 맨 위에 다음 코드를 작성할 수 있습니다.


  1. ini_set('display_errors', 1);
  2. ini_set('display_startup_errors', 1);
  3. error_reporting(E_ALL);

그러나 구문 분석 오류를 보고 하려면 php.ini 파일 에서 이 줄을 활성화 해야 합니다.


display_errors = on 


위의 기술은 모든 환경에서 유용합니다. 그러나 최종적으로 앱을 완성하고 프로덕션 서버에 업로드하는 경우 개발자 설정을 되 돌리는 것을 잊을 수 있습니다. 이 경우 오류를 표시하고 기록하는 조건이 포함 된 구성 파일을 만들 수 있습니다. 

PHP에서 오류 검사를 위해 다음 코드를 작성할 수 있습니다.


  1. define('DEBUG', true);
  2. error_reporting(E_ALL);
  3. if(DEBUG == true)
  4. {
  5. display_errors(true);
  6. log_errors(false);
  7. }
  8. else
  9. {
  10. display_errors(false);
  11. log_errors(true);
  12. }

위의 방법으로 env를 정의하고 필요한 조건을 설정할 수 있습니다. 마찬가지로 오류를 기록하지 않고 브라우저에 오류를 표시하려는 경우 위의 방법으로 env를 정의 할 수 있습니다.


다음은 PHP 스크립트, 오류 및 경고를 디버깅 하는 데 사용할 수 있는 PHP의 오류 검사 방법입니다.


  1. // Turn off all error reporting
  2. error_reporting(0);
  3. // Report simple running errors
  4. error_reporting(E_ERROR | E_WARNING | E_PARSE);
  5. // Reporting E_NOTICE can be good too (to report uninitialized
  6. // variables or catch variable name misspellings ...)
  7. error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
  8. // Report all errors except E_NOTICE
  9. error_reporting(E_ALL & ~E_NOTICE);
  10. // Report all PHP errors (see changelog)
  11. error_reporting(E_ALL);
  12. // Report all PHP errors
  13. error_reporting(-1);
  14. // Same as error_reporting(E_ALL);
  15. ini_set('error_reporting', E_ALL);

PHP 디버그 중심 개발? 이게 뭘까요? 


이 기사를 쓸 당시에는 DDD (디버그 중심 개발)라는 용어가 올바른지 잘 모르겠지만 개발 단계에서 항상 코드를 디버깅 하는 데 바쁜 친구로부터 이 아이디어를 얻었습니다. 

여러 중단 점을 포함하는 코드를 보았고 원하는 출력을 얻을 때까지 각 라인 응답을 로밍합니다. 

중단 점에 대해 혼동하지 마십시오. 나는 그들이 무엇인지 보여줄 것입니다. 

나는 이것이 테스트 사례를 먼저 작성한 다음이 테스트를 통과하도록 코드를 작성하는 TDD와 유사한 개념이라고 생각했습니다.

DDD는 구성에 대한 모든 PHP 디버깅 기술을 먼저 정의한 다음 오류가 발생하면 디버깅 할 코드를 작성하는 유사한 흐름을 가질 수 있습니다.


이 시점에서 Xdebug를 모두에게 소개 할 수 있을 정도로 공정합니다. PHP 디버그 중심 개발의 개념을 이해하는 데 도움이 됩니다. 

기본적으로 Xdebug와 함께 PHP를 실행하면 오류, 응답 및 코드 적용 범위에 대한 완전한 통찰력을 제공합니다.


정확히 Xdebug 란 무엇입니까? 


이미 코드를 작성했으며 이제 컴파일하려고 한다고 가정하십시오. 충돌! 문제가 발생하여 코드가 손상됩니다. 

그리고 최악의 상황은 무엇인지 식별 ​​할 수 없다는 것입니다. Xdebug는 당신의 구세주입니다. 

기본적으로 Xdebug는 PHP의 확장으로 개발자가 프로젝트를 디버깅하고 원활하게 개발하는 데 도움을 주어 오류를 주의 깊게 관찰하고 해결할 수 있습니다. 

PHP의 var_dump() 함수를 업그레이드합니다. 또한 통지, 경고, 오류 및 예외에 대한 스택 추적을 추가합니다.


Xdebug를 사용하면 중단 점을 추가하고 모든 중단 점에서 코드 실행을 중지 할 수 있으므로 한 번의 코드 반복으로 변수 출력을 볼 수 있습니다. 

따라서 코드 디버깅에서 소중한 시간을 절약 할 수 있습니다. Xdebug가 없으면 출력을 다시 보려면 페이지를 새로 고쳐야 합니다.


종속 방법으로 중단 점을 설정하여 문제를 일으키는 원인을 확인할 수도 있습니다. 또한 코드에 원하는 만큼 중단 점을 추가 한 다음 PHP 디버거를 사용하여 각 코드를 한 줄씩 확인할 수 있습니다.


PHP에서 Xdebug 설치 


이제 PHP로 Xdebug를 설치할 차례입니다. Xdebug를 설치할 수 있는 몇 가지 옵션이 있습니다.


Windows: 


Windows 사용자의 경우 Xdebug는 관련 .dll 파일을 다운로드 할 수 있는 마법사 도구를 제공합니다. 

이를 위해 먼저 폴더에 PHP 파일을 만들고 다음 코드 줄을 추가하십시오.


  1. <?php
  2. phpinfo();
  3. ?>

브라우저에서 파일을 실행하십시오. PHP 정보가 나타납니다. 세부 사항을 복사하여 마법사 도구에 넣고 Analyze my phpinfo() 출력 버튼을 클릭하십시오.


php xdebug 


다음과 같은 결과가 나타납니다.


php xdebug 


이제 .dll 파일을 다운로드하고 위에서 설명한 지침에 따라 xampp/php/ext 디렉토리에 파일을 넣으십시오. 

그런 다음 3 단계에 따라 php.ini 파일에서 Xdebug를 활성화하고 마지막으로 웹 서버를 다시 시작하십시오.


MAC 


pecl 확장을 사용하여 PHP7 Xdebug를 설치할 수 있습니다 :


pecl install xdebug 


Linux 


데비안과 같은 Linux 배포판에서 sudo를 사용하여 PHP에 Xdebug를 설치할 수 있습니다.


sudo apt install php-xdebug; 


이제 etc/php/7.0/mods-available/xdebug.ini 파일을 열고 다음 코드를 추가하여 Xdebug를 활성화하십시오 :


  1. xdebug.profiler_enable_trigger = 1
  2. xdebug.profiler_enable = 0
  3. xdebug.remote_enable = 1
  4. xdebug.profiler_output_dir = "/tmp"

이제 Apache2 서버를 다시 시작하십시오.


sudo service apache2 restart; 


GIT 


GitHub에서 복제 할 수도 있습니다.


git clone git://github.com/xdebug/xdebug.git 


Xdebug를 설치 한 후 php.ini 파일을 열고 확장을 활성화하십시오.


zend_extension="xdebug.so" 


이제`php -v` 명령을 사용하여 PHP 버전을 확인하십시오. PHP와 함께 설치된 Xdebug 버전이 표시됩니다.


  1. $ php -v
  2. PHP 7.2.0RC6 (cli) (built: Nov 23 2017 10:30:56) ( NTS DEBUG )
  3. Copyright (c) 1997-2017 The PHP Group
  4. Zend Engine v3.2.0-dev, Copyright (c) 1998-2017 Zend Technologies
  5. with Xdebug v2.6.0-dev, Copyright (c) 2002-2017, by Derick Rethans

VSCode에서 Xdebug 구성 


Xdebug로 원활한 워크 플로우를 원한다면 phpstorm, zend studio 및 VScode와 같은 선호하는 IDE에 통합 할 수 있습니다. PHP를 디버깅 하기 위해 Visual Studio Code에서 Xdebug를 구성 해 봅시다.


php debug라는 인기 있는 VSCode PHP 확장이 있습니다. 확장 창에서 찾아서 설치할 수 있습니다.


php debug extension 


설치 후 VSCode 창을 다시 로드 해야 합니다. 이제 다시 phpinfo()를 실행하십시오; Xdebug가 활성화되어 있는지 확인하기 위해 PHP 파일의 메소드.


이제 디버그 콘솔 탭을 클릭하고 구성 추가를 클릭하십시오.


add configuration 


이제 PHP 환경을 선택해야합니다. VSCode는 이제 루트 디렉토리에 launch.json 파일을 추가합니다.


launch file 


마지막으로 포트 다음에 runtimeExecutable 속성을 목록에 추가하십시오.


"runtimeExecutable": "C:\\xampp\\php\\php.exe" 


launch.json 파일을 저장하십시오. 디버그 모드 탭을 열고 녹색 디버그 버튼을 클릭하여 디버깅 옵션을 시작하십시오.


php debugging 






  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

페이지 정보

조회 7회 ]  작성일19-11-30 14:33

웹학교