2016-11-26 6 views
-1

サービスを現在のユーザオブジェクトに挿入するにはどうすればよいですか?私はこのことを意味し、現在のユーザーオブジェクトにsymfony:ユーザオブジェクトへのサービスの挿入

//in controller 
$user = $this->get('security.token_storage')->getToken()->getUser(); 

//later I want to do this in the user class: 
function getData() { 
    $data = $this->getSomeData();//normal function 
    $data += $this->getMyService()->getSomeMoreData();//invoke service function 
} 

答えて

1

あなたのエンティティクラスが唯一、自分のデータを操作するための責任がある単純なオブジェクトでなければなりませんので、これは非常に悪い習慣です。

ただし、これを行うと決定した場合は、Userクラスのコンテナプロパティを作成し、Doctrine postLoadイベントに挿入できます。the documentationを参照してください。

私はあなたがこれをしてはいけないと再び強調します。私は以前これが行われていることを見てきました。そして、それは複数の責任を持ち、テストすることが不可能な複雑すぎるクラスにつながります。

関連する問題