プレビュー機能で考える、コンテキスト間の依存関係を制御したクラス設計 by 三寳 洋

PHP Conference Japan 2023
採択
2023/10/08 14:15〜
トラック4 - 4F コンベンションホール 鶯
スポンサーセッション(25分)
スポンサーセッション

プレビュー機能で考える、コンテキスト間の依存関係を制御したクラス設計

三寳 洋
4

あなたのアプリケーションでは、複数のコンテキストでロジックを共有することはありますか?

例えば、ECサイトの商品ページでは、管理者が商品の内容を変更して事前にプレビューしたいケースがあります。
ここには一般ユーザーが商品ページを閲覧するコンテキストと、管理者がプレビューするコンテキストが存在します。

プレビューのロジックはどこにあるべきでしょうか。
管理者コンテキストでは、一般ユーザーのロジックを再利用すべきでしょう。完全に分離してしまうとプレビュー機能が一般ユーザー向けのロジックに追従し続けるコストが発生します。
一方で、一般ユーザーコンテキストではプレビューのロジックは不要です。プレビュー機能を改修するたびに一般ユーザー側までテストしたくありません。

複数のコンテキストでロジックを共有する場合、コンテキスト間の依存関係を適切に制御するにはどう実装すべきかを考えます。