私は現在、システムのまともなアーキテクチャを見つけようとして壁に頭をぶつけていますが、ここで Symfony の専門家からの助けが必要だと思います. 通常の Web アプリ (HTML フォームなど) と RESTful API の 2 つのインターフェイスを持つ非常に単純なアプリケーションを構築しています。この 2 つは同じではありませんが、多くの CRUD 操作を共有しています。
2 つのバンドルがあり、それぞれに各インターフェイスに固有のコントローラーが含まれています。1 つは Form コンポーネントを使用してフォームを作成および検証し、もう 1 つは送信された形式 (JSON または XML) で要求からデータを解析するだけです。ただし、これはだめです。パラメータ バインディングや検証など、これら 2 つのインターフェイス間には多くの共有コードがあります。モデルは同じですが、ユーザーからデータを受け取り、モデルと対話する方法は、純粋なアンチ DRY です。
入力バインディングと検証を 1 つの抽象化された操作にする方法はありますか? 各コントローラーから Request オブジェクトを受け取り、各パラメーターを検証し、モデルと通信するクラスを作成することから始めました。API ではうまく機能しましたが、フォーム コンポーネントの利点を完全に失いました。