PHP 개발에서 버그보고는 개발자가 코드의 문제를 신속하게 찾아서 해결하는 데 도움이되는 중요한 기능입니다. PHP는 오류보고 수준을 제어하는 다양한 방법을 제공하며, 그 중 하나는 ini_set () 함수를 사용하는 것입니다. 이 기사에서는 ini_set () 함수를 통해 PHP의 오류보고 수준을 수정하고 몇 가지 일반적인 응용 프로그램 시나리오를 제공하는 방법을 소개합니다.
ini_set ()은 런타임에서 PHP 구성 옵션을 수정하는 데 사용되는 PHP의 내장 기능입니다. 이 기능을 통해 개발자는 오류보고 수준, 시간대, 파일 업로드 크기 등을 포함하여 PHP 구성 파일 (php.ini)에 지정된 설정을 변경할 수 있습니다. 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$option</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$value</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>$ 옵션 : 수정 해야하는 구성 옵션의 이름입니다.
$ 값 : 새로운 구성 값.
이 기사에서는 INI_SET ()를 사용하여 PHP 오류보고 수준을 제어하는 방법에 중점을 둘 것입니다.
PHP의 오류보고 메커니즘은 Error_Reporting 및 Display_Errors의 두 가지 주요 구성 항목을 사용합니다. error_reporting 컨트롤 PHP에서 표시되는 오류 유형을 제어하는 반면 Display_Errors는 웹 페이지에 오류가 표시되는지 여부를 제어합니다.
Error_Reporting () 함수는 PHP 오류보고의 장점 수준을 설정하는 데 사용됩니다. ini_set () 함수에서 error_reporting 옵션을 설정하여보고 된 오류 수준을 지정할 수 있습니다.
예를 들어, 모든 오류 만보 고하지만 경고 및 알림은보고하지 않는다고 가정합니다.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'error_reporting'</span></span><span>, E_ERROR | E_WARNING);
</span></span>위의 코드에서 e_error는 치명적인 오류를 나타내고 e_warning은 런타임 경고를 나타냅니다. 이로 인해 PHP 보고서는 치명적인 오류와 경고만으로 만듭니다.
또한 Display_Errors 구성 항목은 브라우저에 직접 오류를 표시할지 여부를 결정합니다. 일반적으로 개발 환경에서는 자세한 오류 정보를보고 싶지만 생산 환경에서는 보안 개선을위한 표시 오류를 비활성화해야합니다.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// 개발 환경에 오류가 표시됩니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// 생산 환경에는 오류가 표시되지 않습니다</span></span><span>
</span></span>민감한 정보가 유출되는 것을 방지하기 위해 개발 중에 Display_Errors를 1 로, 생산에서 0을 설정하는 것이 좋습니다.
다음은 ini_set () 함수를 사용하여 오류보고 수준을 구성하는 방법을 보여주는 전체 샘플 코드입니다.
<span><span><span class="hljs-comment">// 오류보고 수준을 설정하십시오:모든 유형의 오류를보고합니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'error_reporting'</span></span><span>, E_ALL);
</span><span><span class="hljs-comment">// 在개발 환경에 오류가 표시됩니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-comment">// 생산 환경에서 디스플레이 오류를 비활성화합니다</span></span><span>
</span><span><span class="hljs-comment">// ini_set('display_errors', 0);</span></span><span>
</span></span>PHP에서 Error_Reporting ()은 각각 다른 유형의 오류를 나타내는 상수 세트를 허용합니다. 일반적인 오류 수준은 다음과 같습니다.
e_error : 치명적인 런타임 오류.
e_warning : 런타임 경고 (비 치명적 오류).
E_Notice : 런타임 알림 (일반적으로 스크립트에서 가능한 문제).
E_ALL : 모든 오류 및 경고.
E_STRICT : PHP 코드의 모범 사례에 대한 경고 (예를 들어, 더 이상 사용되지 않는 기능에 대한 경고).
이 상수를 결합하여보고하려는 오류 유형을 선택할 수 있습니다. 예를 들어, e_error | e_warning | E_PARSE는 모든 치명적인 오류, 경고 및 구문 분석 오류를보고합니다.
개발 환경 : 개발 단계에서 일반적으로 문제를 찾는 데 도움이되는 자세한 오류 정보가 필요합니다. 따라서 Error_Reporting을 E_ALL 로 설정할 수 있으며 Display_Errors를 사용하여 오류 메시지를 표시 할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'error_reporting'</span></span><span>, E_ALL);
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span></span>생산 환경 : 민감한 정보의 누출을 피하려면 생산 환경에서 오류 표시를 비활성화해야하며 오류 로그 만 기록해야합니다. 이것은 다음 설정을 통해 달성 할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'error_reporting'</span></span><span>, E_ALL);
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'log_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>); </span><span><span class="hljs-comment">// 로깅을 켜십시오</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'error_log'</span></span><span>, </span><span><span class="hljs-string">'/path/to/php-error.log'</span></span><span>); </span><span><span class="hljs-comment">// 오류 로그 파일 경로를 설정하십시오</span></span><span>
</span></span>ini_set () 은 런타임에서 PHP 구성을 동적으로 조정할 수있는 강력한 기능입니다. Error_Reporting 및 Display_Errors 구성을 조정하면 PHP가 오류를보고하고 표시하는 방법을 제어 할 수 있습니다. 개발 환경에서는 자세한 오류 정보를보고 싶지만 제작 환경에서는 오류 정보가 최종 사용자에게 유출되지 않도록해야합니다. 따라서 INI_SET ()를 사용하여 PHP의 오류보고 수준을 수정하는 것은 PHP 응용 프로그램을 개발하고 배포 할 때 기본 기술입니다.