【发布时间】:2017-05-25 15:39:28
【问题描述】:
我想在我的网络上创建具有不同缓存值的缓存配置。我有工作示例:
// 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();
但是这种方式正确吗?如果另一个程序员将调用存储库“标准”方式$em->getRepository('MyRepository') 怎么办?它会在 udefined 变量上崩溃......有没有办法通过构造函数来做到这一点?还是构造函数是个坏主意?
我对您的做法感兴趣 - 更好的解决方案等。
【问题讨论】:
-
为什么要将此存储库作为服务?为什么不创建一个服务并将实体管理器传递给它?
-
因为我想要一个配置文件,我将在其中拥有配置值,例如缓存、最大结果、最大显示类别等...并且只能从控制器访问此配置,而不是从存储库访问。
-
我觉得最好做一个存储服务,比如MessageStorage,让它来管理检索数据和缓存、分页等...