<p>DOMDocument를 사용하는 스크립트가 있습니다. 일부 환경에서는 모듈이 로드되지 않았기 때문에 실패합니다. 제가 하고 싶은 것은 이 스크립트 사용자에게 이 문제를 해결하기 위한 지침을 제공하는 것입니다. </p><p>다음은 문제를 재현하기 위한 최소한의 스크립트입니다.</p><p><br /></p>
<pre class="brush:php;toolbar:false;"><?php
에코 '시작!';
노력하다 {
$doc = 새로운 DOMDocument();
} 잡기(예외 $e) {
에코 '잡았어';
}
에코 '끝';
?></pre>
<p> 브라우저(Nginx와 관련된 현재 서버에서 제공)에서 열면 "start!"만 표시됩니다(반환 코드 500, try..catch를 생략하면 출력이 동일함). 따라서 문제는 올바른 모듈이 설치되었는지 여부를 감지하는 것뿐만 아니라(확인하려면 Extension_loaded('dom')을 사용해야 할까요?) try..catch가 작동하지 않는 것 같습니다(나는 출력; 현재 경우에는 PHP 7.4.3을 사용하고 있습니다. <br /><br />이 상황을 적절하게 처리하는 방법에 대한 제안 사항이 있습니까?
클래스를 찾을 수 없으면 오류가 발생합니다. 이 클래스는 Exception을 상속하지 않으므로 코드에서 이를 포착할 수 없습니다.
다음 코드는 이 문제를 해결할 수 있습니다:
으아악또는:
으아악물론 Extension_loaded('dom')을 직접 사용하여 확장 프로그램 사용 가능 여부를 확인할 수 있습니다.
class_exists() 함수를 사용하여 클래스가 존재하는지 테스트할 수 있습니다. 예:
으아악