Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] Dodawanie zmiennych do YAML
strife
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


Witam,

Ostatnio męczę się z dodaniem zmiennych z akcji do plików konfiguracyjnych w Symfony. Problem wygląda następująco posiadam sobie przykładową akcję:

  1. <?php
  2. class defaultActions extends sfActions
  3. {
  4. public function executeIndex()
  5. {
  6. $dupa = 2; // dynamiczna wartosc;
  7. sfConfig::set('dupa', $dupa );
  8.  
  9. // próbuje odczytać
  10. $var = sfConfig::get('dynamiczna_dupa'); // zwraca NULL
  11. }
  12. }
  13. ?>


I chce aby zmienna $dupa, znalazła się w pliku konfiguracyjnym app.yml i dała się odczytać. Plik app.yml wygląda u mnie w ten sposób:

Kod
all:
  dynamiczna_dupa: <?php echo sfConfig::get('dupa') ?> # nie jest widoczna


Pewnie problem jest z parsowaniem plików yaml, po dodaniu wartości. Żeby to zadziałało trzeba by zapewne jeszcze raz przeparsować ten plik. Pytanie tylko jak. A może macie jakiś inny pomysł na rozwiązanie tego problemu.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Hmm, to działa inaczej niż (chyba) myślisz.

Chodzi o to, że:
Kod
all:
  dynamiczna_dupa: <?php echo sfConfig::get('dupa') ?>
spowoduje zwrócenie za pomocą kodu:
  1. <?php
  2. sfConfig::get('app_dynamiczna_dupa'); // zwróć uwagę na to app_
  3. ?>
tego co zostanie zapisane podczas tego samego wywołania za pomocą pod zmienną konfiguracyjną dupa.

To nigdy nie będzie zapis do tego pliku.

Ty chcesz w akcji najpierw zapisać/ustawić zamienną a potem ją odczytać, ale plik konfiguracyjny został już dawno sparsowany więc nie ma to sensu. Musiałbyś zrobić to baaardzo wcześnie, tuż przed parsowaniem pliku app.yml

Tak w ogóle to byłoby to bardzo trudno zrobić bo to wszystko dzieje się w bardzo wczesnych momentach przetwarzania żądania.
Stąd ten mechanizm dynamicznych zmiennych nie do końca służy temu żeby to programista ustalał wartości dla tych zmiennych z poziomu kodu.
Ten mechanizm ma pozwolić na dynamiczność zmiennych konfiguracyjnych zależnych od wartości innych zmiennych konfiguracyjnych.
(trochę to zamotane)

Na przykład (kod z dokumentacji):
Kod
all:
  translation:
    format:  <?php echo sfConfig::get('sf_i18n') == true ? 'xliff' : 'none' ?>

Zmienna konfiguracyjna o kluczu app_translation_format będzie równa xliff bądź none ale to nie jest zależne od decyzji programisty ale od zmiennej sf_i18n ustawionej w innym pliku.


A możesz powiedzieć co chciałbyś uzyskać? Pomyślimy.

Ten post edytował mike_mech 28.03.2007, 19:27:30
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 08:02