如何在Model类中读取Symfony2中的配置值


How to read config value in Symfony2 in Model class

我在配置中定义了一个散列盐。我想在我的用户类中得到这个,关于如何做到这一点的任何想法?我看过很多关于如何在控制器类中使用这个的例子,但不是在模型中?

谢谢

我也有过同样的问题。如果symfony 1中有类似sfConfig::get()的东西就好了。无论如何,我认为这实际上可能是一个"有更好的方法来做这件事"的例子。如果你只是使用setter注入当你实例化你的User类(即使用setHashSalt()方法)?如果你从控制器实例化,你可以使用$this->container->parameters['hash_salt']

我敢肯定,没有办法访问配置。不使用container对象。我很想知道有没有人有更简单的方法。

请看我的回答:

如何从Symfony2 config.yml中读取配置设置?

  • 第一种方法:分离配置块,获取它作为参数
  • 第二种方法:分离配置块,将配置注入到服务

回答你,如果你想注入到Model中,最好的方法是有一个Manager作为模型的工厂,然后管理器可以将自己注入到模型中,所以模型可以访问它,因此,可以访问配置。

比如说,你的模型有一个Car和一个House,如果它们是相关的,你可以有一个CityManager和一个getAllCars()getCarById()或类似的,以及一个getAllHouses()getHouseById()等。

然后在CityManager中传递配置到Model类:

class CityManager()
{
    private $myConfigValue;
    public getCarById( $id )
    {
        return new Car( $id, $this->myConfigValue );
    }
}

传递你自己,让Model只在需要的时候得到配置:

class CityManager()
{
    private $myConfigValue;
    public getCarById( $id )
    {
        return new Car( $id, $this );
    }
    public getConfig()
    {
        return $this->myConfigValue;
    }
}