我想从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
答案 0 :(得分:1)
教条实体的问题是从数据库中检索它们。它们在没有经过构造函数的情况下由doctrine实现,因此可能与您发出new
语句时的依赖关系不同。
因此,让模型意识到这一点可能是一个坏主意。 您可能更喜欢使用外部服务,而更喜欢贫血模型(简单数据对象)。 然后,您将所有逻辑委托给专用服务。
如果你不想,你仍然可以手动注入你的依赖(例如在构造函数中)。这只适用于手工制作实体的情况。
然后你必须利用doctrine postLoad
事件来注入相同的依赖项(例如通过setter)。
这种重复有点糟糕。