0

我想从 symfony2 实体中获取 config.yml 的值。

配置.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(例如在构造函数中)。这仅在您手动对实体进行沉降时才有效。

然后您必须利用教义postLoad事件来注入相同的依赖项(例如通过 setter)。这种重复有点糟糕。

于 2013-07-16T10:32:34.540 回答