2016-04-02 11 views
0

私はフォトギャラリーのためのかなり簡単なサイトで作業しています、ユーザーはギャラリーで自分の好きな写真に投票する能力があります。ユーザーが投票するたびにいくつかのイベントが設定され、投票オブジェクトを受け取るVoteCaseイベントが呼び出されます。Laravel、イベントはデータベースと対話する必要がありますか?

VOTEオブジェクトが

  • ...で構成されてPHOTOID
  • voterID

イベントは投票オブジェクトを受け取り、自分の写真が選ばれたと言って写真の所有者と電子メールを送信します。電子メールを送信するための別のAppMailer.phpクラスがあります。

私の質問は、私が行うには?写真は(私はすでにそのための説得力の関係を持っている($photo->user;

属するしかし、それはイベントの仕事が誰であるかを確認するために検索を行う必要が明らかであり、データベースコールを呼び出して、AppMailerに渡すユーザーオブジェクトを取得するか、AppMailerクラスがイベント全体を受け取ってユーザールックアップを実行するかどうかを確認します。

投票数を増やしたり、投票のユーザーのクレジットとおそらく「バッジ」などを割り当てることができます。これらのそれぞれに追加のDBルックアップがある可能性がありますので、これを置くのに最適な場所を知っておくと便利です

私はイベントがDTOと非常に似ていると言われましたが、私の経験は存在しません。

答えて

0

注:これは私の意見ではないルール(そうでないかもしれないベストプラクティス)

あなたがイベントリスナーにDBの呼び出しを行うためにはい、それは大丈夫です(あなたのメーラーを呼び出しているのthatsを想定)

  1. アプリのメーラークラスはしっかりとあなたのORM/DBに接続され、イベントリスナーでShouldQueueを実装しているSingle Responsibility

  2. を持っていません。この方法でremoviパフォーマンスに関する懸念事項(あなたは正しいのですか?)

+0

ライブに行く前に、私はShouldQueueが実装されます! – dangel

関連する問題