私は現在、ZendFrameworkとDoctrine2を使用してプロジェクトに取り組んでいますが、これらのツールの両方に本当に満足していますが、データベースデータ、セッションデータ(承認、パラメータ、aclなど。)
私はこの種の実装をよく目にします:
if (User::isConnected())
私にとっての問題は、私のUserクラスがDoctrineによって使用されるエンティティであるということです。問題ではありませんが、ユーザーが複雑な役割や特権を持っている場合は、ビジネスロジックが追加される可能性があります。
ちなみに、理由はわかりませんが(気持ちだけ、間違っているかもしれません)、良いアイデアとは思えないので、デザインの限界があると思います。
現在の私の考えは、UserServiceを使用することです。私はすでに他のエンティティにそのようなレイヤーを使用しようとしていますが、非常に興味深いものに見えます。
のようなものはどうですか:
$service = new UserService($entityManager);
if ($service->isUserConnected($user))
「ユーザー」(または許可される可能性のある他の「リソース」)をセッションに格納し、許可を確認するIdentificationServiceなどの別のサービスを使用できる場合があります。
同じことが、次のようなメソッドを使用するAuthorizationServiceにも当てはまります。
$service->isAuthorized($user, $resource, $action)
この種の実装についてフィードバックはありますか?および/または例はありますか?
あなたの考えは何ですか?
ありがとうございました。