<p>DOMDocument を使用するスクリプトがあります。環境によっては、モジュールがロードされていないことが原因で失敗することがあります。私がしたいのは、このスクリプトのユーザーにこの問題を修正するためのガイダンスを提供することです。 </p><p>問題を再現する最小限のスクリプトは次のとおりです。</p><p><br /></p>
<pre class="brush:php;toolbar:false;"><?php
エコー「開始!」;
試す {
$doc = 新しい DOMDocument();
} catch (例外 $e) {
エコー「キャッチ」;
}
エコー「終了」;
?></pre>
<p> ブラウザ (Nginx を含む現在のサーバーによって提供される) で開くと、「start!」だけが表示されます (戻りコード 500。try..catch を省略しても、出力は同じです)。したがって、問題は、正しいモジュールがインストールされているかどうかを検出するだけでなく(確認するには extension_loaded('dom') を使用する必要がありますか?)、try..catch が機能しないように見えることもあります(出力; 現在の場合、PHP 7.4.3 を使用しています)。 <br /><br />この状況に適切に対処する方法について何か提案はありますか? </p>
クラスが見つからない場合、エラーが発生します。このクラスは Exception を継承しないため、コードは例外をキャッチできません。
次のコードでこの問題を解決できます:
リーリー ###または:### リーリーもちろん、extension_loaded('dom') を直接使用して、拡張機能が利用可能かどうかを検出することもできます。
class_exists() 関数を使用して、クラスが存在するかどうかをテストできます。例えば:############ リーリー