Dans Symfony 2.6 et les versions antérieures, pour récupérer un paramètre dans un contrôleur - vous devez d’abord récupérer le conteneur, et ensuite - le paramètre.
$this->container->getParameter('api_pages');
Alors que la méthode $this->get() dans un contrôleur chargera un service.
Dans Symfony 2.7 et les versions plus récentes, pour récupérer un paramètre dans un contrôleur, vous pouvez utiliser le code suivant :
A partir de Symfony 3.3 + 3.4, il existe une méthode beaucoup plus propre, facile à configurer et à utiliser.
Au lieu d’utiliser le conteneur et le localisateur de service/paramètre, vous pouvez passer des paramètres à la classe via son constructeur. Ne vous inquiétez pas, il ne s’agit pas d’un travail fastidieux, mais plutôt d’une approche consistant à configurer une fois et à oublier.
Dans Symfony 4, vous pouvez utiliser l’interface ParameterBagInterface :
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
class Param
{
private $params;
public function __construct(ParameterBagInterface $params)
{
$this->params = $params;
}
public function myMethod()
{
$parameterValue = $this->params->get('parameter_name');
// ...
}
}