Home » Php » php – Symfony2: accessing variables defined in config.yml and config_*.yml

php – Symfony2: accessing variables defined in config.yml and config_*.yml

Posted by: admin July 12, 2020 Leave a comment

Questions:

Let’s say I have a simple traditional contact form on my site and I would like it to use the subject “Test: (subject_field value)” in dev environment and “(subject_field_value)” in prod environment when sending e-mail. Is there a way to define a variable called “subject_prefix” in config_dev.yml and config_prod.yml and then just use something like $this->get('config')->get('subject_prefix')? I would expect that call to return “Test: (subject_field value)” in dev environment and “(subject_field_value)” in prod environment.

How to&Answers:

The best to do is :

In the config.yml

parameters:
    url: domain.com

In the controller :

$value = $this->container->getParameter('url');

Hope it helps.

In Symfony 2.7+:

$value = $this->getParameter('url');

Answer:

See the How to expose a Semantic Configuration for a Bundle cookbook article.

Answer:

If you do not want to clutter your “parameters.yml” and do want to store it in the config.yml and config_dev.yml look at my answer here:

How do I read configuration settings from Symfony2 config.yml?

The one that contains the two approaches:

  • FIRST APPROACH: Separated config block, getting it as a parameter
  • SECOND APPROACH: Separated config block, injecting the config into a service

Hope this helps!