>  기사  >  PHP 프레임워크  >  ThinkPHP 디버깅 수단 및 방법 분석

ThinkPHP 디버깅 수단 및 방법 분석

藏色散人
藏色散人앞으로
2021-12-14 15:27:321669검색

다음 thinkphp프레임워크 튜토리얼 칼럼에서는 ThinkPHP를 사용할 때 마스터해야 할 디버깅 방법을 분석합니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

ThinkPHP 사용 시 마스터해야 할 디버깅 방법 분석

ThinkPHP 사용 시 마스터해야 할 디버깅 방법

findAll의 반환 데이터 유형이 무엇인지, 오류가 발생하는 상황 등을 질문하는 사람들을 자주 볼 수 있습니다. 이유도 모른 채 이런 일이 발생하는데, 사실 저는 아직도 ThinkPHP에 내장된 디버깅 방법과 방법에 익숙하지 않습니다. IDE 자체에 포함된 디버깅 방법은 제쳐두고 개발에 ThinkPHP를 사용하거나 사용할 계획이라면 다음 디버깅 관련 방법을 이해해야 합니다. 마스터됨:

1. 프로젝트 구성 파일에서 DEBUG_MODE 디버깅 모드를 켜면 대부분의 오류 원인을 찾을 수 있습니다. 인증코드 출력에 영향을 줄 수 있습니다.

2. 디버깅 모드를 사용하지 않으려면 페이지 추적 표시를 별도로 켤 수 있습니다. 많은 사람들이 디버그 모드를 사용하지 않으려는 이유는 실제로 페이지 추적 정보의 출력 때문이라는 것을 알았습니다. 실제로 디버그 모드에는 페이지 추적이 있어야 한다고 생각하는 오해가 있지만 실제로는 디버그 모드와 페이지 추적이 반드시 관련되어 있는 것은 아닙니다. 디버깅 모드를 켠 후 시스템의 기본 디버깅 구성 파일이 페이지 추적 표시를 활성화하므로 프로젝트에 대해 별도의 디버깅 구성 파일을 정의할 수 있기 때문입니다.

3. 이 방법은 var_dump와 같은 모든 유형의 변수 정보를 출력할 수 있으며 브라우저에서 보기에 더 편리합니다. 예:

코드는 다음과 같습니다.

$User = D("User");
$list = $User->findAll();
dump($list);

4. 페이지 Trace 정보는 현재 페이지에서 실행된 SQL 문만 표시할 수 있지만 Ajax 모드에서 실행된 백그라운드 작업에서는 SQL 문을 볼 수 없으므로 SQL 로깅을 활성화할 수도 있습니다. SQL_DEBUG_LOG는 실행된 각 SQL 문을 기록하고 볼 수 있습니다. 각 SQL 문 실행 시 시간 SQL 로그 파일은 Logs 디렉터리에 위치하며, 일일 SQL 로그는 자동으로 날짜별로 구분됩니다.

5. 또 다른 방법은 특정 데이터 작업을 수행한 후 SQL 실행에 오류가 있다고 의심되는 경우 모델 클래스의 getLastSql 메서드를 사용하여 마지막으로 실행된 SQL 문을 보고 오류의 구체적인 원인을 분석할 수 있다는 것입니다. . 예를 들면 다음과 같습니다.

코드는 다음과 같습니다.

$User = D("User");
$User->id = 3;
$User->name = 'ThinkPHp';
$User->save();
echo $User->getLastSql();
// 输出 update think_user set where id=3;

6. 특정 코드 부분의 실행 시간을 디버깅해야 하는 경우 다음에서 제공하는 debug_start($label) 및 debug_end($label) 메서드를 사용할 수 있습니다. 예:

코드는 다음과 같습니다.

debug_start('demo');
// 这里是你的代码段.......
debug_end('demo');

위 내용은 ThinkPHP 디버깅 수단 및 방법 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 aliyun.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제