스택큐힙리스트

PHP에서 유용한 오류 메시지를 어떻게 얻을 수 있을까요? 본문

카테고리 없음

PHP에서 유용한 오류 메시지를 어떻게 얻을 수 있을까요?

스택큐힙리스트 2023. 9. 6. 12:27
반응형

PHP 스크립트를 실행하려고 할 때 종종 화면이 깜박이는 경우가 있습니다. 오류 메시지 없이 빈 화면만 표시됩니다. 원인은 간단한 구문 오류(잘못된 괄호, 누락된 세미콜론)이나 함수 호출 실패, 또는 다른 문제로 인한 것일 수 있습니다.

문제가 무엇인지 파악하는 것은 매우 어렵습니다. 저는 코드에 주석을 달고, echo문을 이곳저곳에 작성하며 문제를 좁히려고 시도합니다. 하지만 분명히 더 나은 방법이 있을 것입니다, 맞죠?

PHP가 자바처럼 유용한 에러 메시지를 생성할 수 있는 방법이 있을까요?

답변 1

기본적으로 오류 표시는 비활성화되어 있으며, 오류 메시지를 고객이 보는 것을 원치 않기 때문입니다.

'Check this page' PHP 문서에서 2개의 지시문에 대한 정보를 찾으세요: 'error_reporting'와 'display_errors' . 'display_errors' 이 아마 당신이 변경하려는 것일 것입니다.

그러면 3가지 옵션이 있습니다:

(1) 오류 로그 파일을 확인할 수 있습니다. 그 파일에는 모든 오류가 포함되어 있을 것입니다 (로그 기능이 비활성화되지 않은 경우). 오류 기록을 사용하려면 'log_errors' 설정 지시문이 'On' 로 설정되어 있는지 확인하십시오. 로그는 PHP가 아닌 웹 서버에서 발생하는 오류가 발생할 때도 도움이 됩니다.

(2) 다음 2줄을 추가할 수 있습니다. 이는 구문 오류가 아닌 동일한 파일에서 발생한 오류를 디버그하는 데 도움이 될 것입니다:

'error_reporting(E_ALL);

ini_set('display_errors', 'On');

'

라이브 서버에서는 후자를 'Off' 로 설정해야합니다. (하지만 로그 파일에서 발생한 모든 오류에 대해 여전히 배워야 하기 때문에, 후자만 적용해야합니다).

그러나 동일한 파일에 발생한 구문 오류의 경우, 위의 명령은 작동하지 않으며, php.ini에서 활성화해야 합니다. php.ini를 수정할 수 없는 경우, 아래의 줄을 .htaccess 파일에 추가해 볼 수도 있으나, 최근에는 잘 지원되지 않습니다:

'php_flag display_errors on

php_value error_reporting -1

'

(3) 다른 옵션은 'PhpEd' , VSCode 또는 PHPStorm과 같이 입력할 때 오류를 확인하는 편집기를 사용하는 것입니다. 이들은 모두 더 자세한 정보를 제공할 수 있는 디버거와 함께 제공됩니다. (PhpEd 디버거는 xdebug와 매우 유사하며 편집기에 직접 통합되어 모든 작업을 수행할 수 있는 하나의 프로그램을 사용할 수 있습니다.)

답변 2

PHP에서 유용한 오류 메시지를 어떻게 얻을 수 있을까요?

PHP는 널리 사용되는 서버 사이드 스크립트 언어로, 웹 애플리케이션 개발에 매우 포용적입니다. 그러나 PHP를 사용하면서 오류가 발생하는 경우가 종종 있을 수 있습니다. 이러한 오류 메시지를 올바르게 이해하고 대처하는 것은 웹 개발자에게 매우 중요한 기술입니다. 그렇다면 PHP에서 어떻게 유용한 오류 메시지를 얻을 수 있을까요? 이 문제에 대해 다루어보겠습니다.

1. 오류 보고 등급 설정하기: PHP는 로깅 기능을 제공하며, 이를 통해 발생한 오류의 등급을 설정할 수 있습니다. 오류 등급에는 E_ALL, E_ERROR, E_WARNING, E_PARSE, E_NOTICE 등이 있습니다. 이 중 E_ALL은 모든 오류 등급을 표시하며, E_ERROR은 치명적인 오류 등급만을 표시합니다. 주로 개발 단계에서는 E_ALL을 설정하여 모든 오류를 확인할 수 있도록 하고, 런타임 환경에서는 E_ERROR만을 설정하여 심각한 오류에 대해 알림을 받을 수 있습니다.

2. 오류 출력 설정하기: PHP.ini 파일을 수정하여 오류를 출력할 수 있도록 설정할 수 있습니다. display_errors 디렉티브를 On으로 변경하여 오류 메시지를 출력할 수 있습니다. 이를 통해 개발 단계에서 오류를 쉽게 파악할 수 있으므로, 디버깅에 매우 유용한 기능입니다. 그러나 실제 운영 환경에서는 이 옵션을 Off로 설정하여 사용자에게는 오류 메시지가 표시되지 않도록 하는 것이 좋습니다.

3. 오류 로깅 설정하기: PHP는 오류를 로그 파일에 기록하는 기능을 제공합니다. error_log 디렉티브를 사용하여 오류 메시지를 로그 파일에 기록할 수 있습니다. 오류 메시지를 로깅하면 실제 애플리케이션 사용자들에게는 오류가 표시되지 않지만, 개발자들은 로그 파일을 확인함으로써 발생한 오류에 대한 정보를 얻을 수 있습니다. 로그 파일을 일정 기간마다 정기적으로 확인하고 검토하여 수정할 사항이 있는지 파악하는 것이 좋습니다.

4. 사용자 정의 오류 핸들링하기: PHP에서는 사용자 정의 오류 처리기를 작성하여 오류에 대한 사전 처리를 수행할 수 있습니다. set_error_handler() 함수를 사용하여 오류가 발생할 때 호출할 사용자 정의 함수를 등록할 수 있습니다. 이를 통해 오류 메시지를 사용자가 원하는 형태로 출력하거나 처리할 수 있습니다. 유연하고 직관적인 사용자 정의 오류 처리기를 작성하여 웹 애플리케이션의 특정 상황에서 발생하는 오류에 대해 적절한 행동을 수행할 수 있습니다.

PHP에서 유용한 오류 메시지를 얻는 방법에 대해 알아보았습니다. 오류 메시지는 개발 단계에서 오류를 신속하게 파악하고 수정할 수 있도록 도와줍니다. 또한, 오류 로깅을 통해 실제 운영 환경에서는 사용자에게 오류 메시지를 노출하지 않으면서도 오류를 분석할 수 있는 장점이 있습니다. 이러한 기능들을 적절히 활용하여 PHP 개발 과정에서 발생하는 오류에 대해 효율적으로 대응할 수 있도록 하시기 바랍니다.

반응형
Comments