2011-12-17 13 views
7

Załóżmy, że mam prosty tradycyjny formularz kontaktowy na mojej stronie i chciałbym, aby użył tematu "Test: (subject_field value)" w środowisku dev i "(subject_field_value)" w środowisku prod podczas wysyłania wiadomości e-mail. Czy istnieje sposób, aby zdefiniować zmienną o nazwie "subject_prefix" w config_dev.yml i config_prod.yml, a następnie po prostu użyć czegoś takiego jak $this->get('config')->get('subject_prefix')? Spodziewam się, że wywołanie zwróci "Test: (wartość pola subject)" w środowisku deweloperów i "(Subject_field_value)" w środowisku prod.Symfony2: dostęp do zmiennych zdefiniowanych w config.yml i config _ *. Yml

Odpowiedz

7

Najlepiej zrobić to:

W config.yml

parameters: 
    url: domain.com 

W regulatorze:

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

Nadzieję, że to pomaga.

W Symfony 2.7+:

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

krótkie i pomaga, dzięki! –

+0

To mi pomogło, dzięki –

0

Jeśli nie chcesz zaśmiecać „parameters.yml” i chcą, aby zapisać go w config.yml i config_dev.yml spojrzeć na moją odpowiedź tutaj:

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

Ten, który zawiera dwa podejścia:

  • FIRST PODEJŚCIE: W separacji bloku konfiguracyjnego, uzyskanie go jako parametr
  • Drugie podejście: blok separacji config, wstrzykując config w służbie

nadzieję, że to pomaga!

Powiązane problemy