一意の 8 文字の英数字文字列を含む UNIQUE 列を持つ DB テーブルがあります。
私は(ついに)自分の MVC フレームワークから symfony に移行しました。今までは、CREATE で呼び出されるモデルにプライベート メソッドがありました。メソッド内のループは、ランダム ハッシュを生成し、テーブルに対して READ を実行して一意かどうかを確認します。一意である場合は、ハッシュが返され、CREATE 要求に挿入されます。
私が見ている問題は、symfony ではエンティティ クラス内からリポジトリにアクセスできないため、ライフサイクル コールバックを使用できないことです。この背後にある理由を理解しています。一方、ハッシュ生成はコントローラーとは関係ありません。私にとっては、モデルに属するのは内部ロジックです。後でデータ構造を変更する場合は、コントローラーを編集する必要があります。
私の質問は、アーキテクチャに関して、ハッシュ生成メソッドをどこに置くべきですか?