私は、HTMLデザイナーがPHPメソッドを使用してコンテンツを取得するプロジェクトのために開発しています。今こそ例外を処理するときであり、HTMLをきれいで、クリーンで、セマンティックに保ち、PHPを正しく保つための問題に直面しています。
例外が発生するまで、HTMLテンプレートには次のようなものがありました。
<h2 class="title"><?php Content::getTitle() ?></h2>
ここで、例外を処理する場合は、次のように記述します。
<h2 class="title">
<?php
try {
Content::getTitle();
} catch (Exception $e) {
echo $e->getMessage();
}
?>
</h2>
これはきれいではありません。
または
<?php
try {
// THE WHOLE TEMPLATE RENDERING!!!
} catch (Exception $e) {
echo $e->getMessage();
}
?>
これは、問題を報告して続行する必要があるときに、例外でレンダリングを停止するため、受け入れられません。
したがって、メソッド自体の中にtry/catchのものを入れることを考えています。
class Content {
public static function getTitle {
try {
if (something==happened) throw new Exception 'OMG!';
else {
DoTheJob();
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
今のところうまくいくようですので、質問は次のとおりです。これは良い習慣ですか?より良い、より多くのDRYの選択肢はありますか?