Reputation: 1539
I've defined a hash salt in my config.yml and would like to get this in my User class, any ideas about how to do this? I've seen loads of examples about how to use this in the controller class, but not in the model?
Thanks
Upvotes: 3
Views: 2221
Reputation: 10684
See my answer here:
How do I read configuration settings from Symfony2 config.yml?
with
Answering to you, if you want to inject that in the Model
, the best approach is to have a Manager
that acts as a factory of the model, then the manager can inject itself into the model, so the model can get access it and therefore, get access to the configuration.
Say, your model has a Car
and a House
if they are related you could have a CityManager
with a getAllCars()
or getCarById()
or similar, as well as a getAllHouses()
or a getHouseById()
or so.
Then in the CityManager
either pass the config to the Model
class:
class CityManager()
{
private $myConfigValue;
public getCarById( $id )
{
return new Car( $id, $this->myConfigValue );
}
}
either pass yourself, and let the Model
get the config only if it needs it:
class CityManager()
{
private $myConfigValue;
public getCarById( $id )
{
return new Car( $id, $this );
}
public getConfig()
{
return $this->myConfigValue;
}
}
Fill the value as in the article linked.
Upvotes: 0
Reputation: 25305
I've had the same question. It'd be nice if there was something similar to sfConfig::get()
from symfony 1. Anyway, I think this may actually be a case of "there's a better way to do this". What if you just use setter injection when you instantiate your User class (ie use a setHashSalt()
method)? If you're instantiating from a controller you can use $this->container->parameters['hash_salt']
.
AFAIK, there's no way to access config.yml parameters without using the container
object. I'm very curious to see if anyone has an easier way.
Upvotes: 5