我需要在存储库中注入参数,我尝试向服务存储库添加调用,但是当我从存储库调用某些函数时,我的调用函数没有调用
app.repository.file:
class: "%app.repository.file.class%"
factory_service: doctrine.orm.default_entity_manager
factory_method: getRepository
arguments:
- "%app.entity.file.class%"
calls:
- [setParam,['%md5_suffix%']]
设置参数不调用
private $param;
public function setParam($param)
{
$this->param = $param;
}
参数有null
我尝试使用JMSDiExtraBundle
/**
* @DIInjectParams({
* "param" = @DIInject("%md5_suffix%"),
* })
*/
public function setParam($param)
{
$this->param = $param;
}
但具有像字符串这样的属性%md5_suffix%
,而不是来自parameters.yml
:)的属性
如何在回购中从参数 YML 注入参数?
Factory_service在
2.8 中已弃用。相反,请尝试使用以下内容:
app.repository.file:
class: DoctrineORMEntityRepository
factory: ['@doctrine.orm.entity_manager', getRepository]
arguments:
- "%app.entity.file.class%"
calls:
- [setParam,['%md5_suffix%']]
我创建了另一个服务
economy.param_helper:
class: "%economy.param_helper.class%"
arguments:
- "%md5_suffix%"
并像这样在存储库中注入此服务
/**
* @var ParamHelper
*/
private $param;
/**
* @DIInjectParams({
* "param" = @DIInject("economy.param_helper"),
* })
*/
public function setParam(ParamHelper $param)
{
$this->param = $param;
}
并致电$md5Suffix = $this->param->getMd5Suffix();
但我不确定这是正确的方式