0

symfony2 エンティティから config.yml から値を取得したいと考えています。

config.yml:

my_example_bundle:
    slug_pattern: "/^[a-z0-9\._\-]{2,20}$/"

実在物:

function setUsername($username) {
    $pattern = ""; // need to get it from slug_pattern in config.yml

    if (!preg_match($pattern, $username)) {
        throw new \InvalidArgumentException("Username has to match " . $pattern);
    }
    ...
}

ありがとうございました!

更新: Dev4TheWeb も優れたソリューションを投稿しました: http://dev4theweb.blogspot.ch/2012/08/how-to-access-configuration-values.html

4

1 に答える 1

1

教義の実体の問題は、それらがデータベースから取得されるときです。それらはコンストラクターを通過せずにドクトリンによってインスタンス化されるため、newステートメントを作成するときと同じ依存関係を持たない場合があります。

そのため、モデルにこれを認識させるのは悪い考えかもしれません。外部サービスの使用を好み、貧血モデル (単純なデータ オブジェクト) を好む場合があります。次に、すべてのロジックを専用のサービスに委任します。

したくない場合でも、depedenceis を手動で (たとえばコンストラクターで) 注入することができます。これは、エンティティを手動でシンタンシエートする場合にのみ機能します。

次に、doctrinepostLoadイベントを利用して、同じ依存関係を注入する必要があります (たとえば、setter を介して)。この重複はやや悪いです。

于 2013-07-16T10:32:34.540 に答える