6

parameters.iniファイルに値が保存されており、モデルのprepersistメソッド中に値にアクセスする必要があります。

通常はを使用$this->container->getParameter('value');しますが、コンテナはエンティティで使用できません。

エンティティクラス内でパラメータを取得する方法はありますか?

PS値は、プリパーシスト中に情報を取得するサービスのAPIキーです。ベストプラクティスは、parameters.iniにキー/パスワードを保持することです

4

2 に答える 2

8

ベストプラクティスは、サービスを使用してエンティティを永続化することです。これは、サービスメソッドを呼び出すときにコンテナを挿入し、パラメータを設定します。updateMyEntity()

コントローラ内(または必要なもの):

$user = new User('foo');
$user->setSomeProperty('bar');
$userService->update($user);

内部UserService

public function update(User $user) {
    $user->setSomeParameter($this->container->getParameter('value'));
    $this->em->persist($user);
}
于 2012-07-24T16:41:27.393 に答える
4

Florentの回答に加えて、エンティティは純粋にデータオブジェクトであることが意図されています。彼らはあなたのアプリケーション内の他の変数やサービスについて知っているべきではありません。エンティティがシステム全体のAPIキーについて何かを知る必要がある理由についてもっと知りたいです。背景情報がほとんどないので、何をしようとしているのかを考え直すべきだと思います。

APIと対話するには、理想的にはコンテナーを介して構成されたサービスが必要です。それが実体と何の関係があるのか​​わかりません。

于 2012-07-25T05:18:41.340 に答える