モデルに多くのプレゼンテーション ロジックがあるように見えるアプリケーションのポイントに到達しています。
<?php foreach ($this->users as $user): ?>
<span class="phone">
<?php echo $user->getPhoneNumberFormattedAsText(); ?>
</span>
<?php endforeach; ?>
最初は、ビュー ヘルパーの必要性としてこれに取り組み始めました。
<span class="phone"><?php echo $this->userPhone($user->getPhone()); ?></span>
ただし、ファイル全体を占有する必要のない、特定のモデルに固有の小さなビュー ヘルパーがたくさんあるという問題に直面し始めました。このプレゼンテーション ロジックをグループ化して、モデルから除外できればよいのですが。これは、デコレータパターンが理にかなっている場合だと思います。
「デコレータ パターンは、既存のオブジェクトに動作を動的に追加できるようにする設計パターンです。」
オンラインでいくつかの例を見たことがありますが、実際の実用的なコードの例はありません。PHP アプリケーションでこのパターンをうまく使用できたかどうか、また、このパターンの PHP の例がどのようになるかを知りたいです。