Php 如何在模型类中读取Symfony2中的配置值
我已经在我的config.yml中定义了一个hash salt,希望在我的用户类中得到它,关于如何做到这一点有什么想法吗?我已经看到了大量关于如何在控制器类中使用它的示例,但没有在模型中使用Php 如何在模型类中读取Symfony2中的配置值,php,symfony,Php,Symfony,我已经在我的config.yml中定义了一个hash salt,希望在我的用户类中得到它,关于如何做到这一点有什么想法吗?我已经看到了大量关于如何在控制器类中使用它的示例,但没有在模型中使用 谢谢我也有同样的问题。如果symfony1中有类似于sfConfig::get()的东西就好了。无论如何,我认为这实际上可能是一个“有更好的方法来做这件事”的例子。如果在实例化用户类时使用setter注入(即使用setHashSalt()方法),会怎么样?如果您是从控制器实例化,则可以使用$this->co
谢谢我也有同样的问题。如果symfony1中有类似于
sfConfig::get()
的东西就好了。无论如何,我认为这实际上可能是一个“有更好的方法来做这件事”的例子。如果在实例化用户类时使用setter注入(即使用setHashSalt()
方法),会怎么样?如果您是从控制器实例化,则可以使用$this->container->parameters['hash_salt']
抱歉,如果不使用容器
对象,就无法访问config.yml参数。我很想知道是否有人有更简单的方法。请看我的答案:
与
- 第一种方法:分离配置块,将其作为参数获取
- 第二种方法:分离配置块,将配置注入服务
模型
,最好的方法是让管理器
充当模型的工厂,然后管理器可以将自身注入模型,这样模型就可以访问它,从而访问配置
比如说,你的模型有一辆Car
和一座House
如果它们相关,你可以有一个CityManager
和一个getAllCars()
或getCarById()
或类似的,以及一个getAllHouses()
或getHouseById()
等等
然后在CityManager
中将配置传递给Model
类:
class CityManager()
{
private $myConfigValue;
public getCarById( $id )
{
return new Car( $id, $this->myConfigValue );
}
}
或者传递您自己,让模型
仅在需要时获取配置:
class CityManager()
{
private $myConfigValue;
public getCarById( $id )
{
return new Car( $id, $this );
}
public getConfig()
{
return $this->myConfigValue;
}
}
填写链接文章中的值。+1,注入参数是前进的方向(还有
$this->container->getParameter()
方法)-在控制器中检索它并将其传递给模型。