我想在我的网站上创建具有不同缓存值的缓存配置。我有一个工作的例子:
// config.yml
parameters:
myValue:
first: 1
second: 2
// services.yml
my_repo:
class: AppBundle\Repository\MyRepository
factory: ["@doctrine.orm.entity_manager", getRepository]
arguments:
- 'AppBundle\Entity\My'
calls:
- [setValue, ["%myValue%"]]
// MyRepository.php
public function setValue($val) {
$this->first = $val['first'];
}
// Inside controller method
$someVariable = $this->get('my_repo')
->someOtherFunction();
但这样做是否正确?如果另一个程序员将调用存储库'standart'方式$em->getRepository('MyRepository')
怎么办?它将在udefined变量上崩溃...有没有办法通过构造函数来做到这一点?或者构造函数是个坏主意?
我对你的练习感兴趣 - 更好的解决方案等。
答案 0 :(得分:0)
像
这样的东西 [setValue, ["@=container.hasParameter('myValue') ? parameter('myValue') : array()"]]
应该做的伎俩。然后,如果注入的变量是空的,请检查您的服务。有关表达式语言的更多信息,请参阅the doc