Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]co to za magia w plikach konfiguracyjnych YAML?
koszykarze
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 10.10.2015
Skąd: Warszawa

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


na przykładzie najwyższego kodu z tej strony http://symfony.com/doc/current/book/configuration.html po przełączeniu widoku z yml na php dzieje się coś tajemniczego.

gdy dyrektywa imports to w php wywoływana jest metoda $this->import()
gdy dyrektywa twig, framework to w php wywołana jest metoda $container->loadFromExtension


Jak to wyjaśnić?







Ten poniższy paskudny kod lepiej oglądać z powyższego linka.
Kod
# app/config/config.yml
imports:
    - { resource: parameters.yml }
    - { resource: security.yml }

framework:
    secret:          '%secret%'
    router:          { resource: '%kernel.root_dir%/config/routing.yml' }
    # ...

# Twig Configuration
twig:
    debug:            '%kernel.debug%'
    strict_variables: '%kernel.debug%'

# ...

  1. // app/config/config.php
  2. $this->import('parameters.yml');
  3. $this->import('security.yml');
  4.  
  5. $container->loadFromExtension('framework', array(
  6. 'secret' => '%secret%',
  7. 'router' => array(
  8. 'resource' => '%kernel.root_dir%/config/routing.php',
  9. ),
  10. // ...
  11. ));
  12.  
  13. // Twig Configuration
  14. $container->loadFromExtension('twig', array(
  15. 'debug' => '%kernel.debug%',
  16. 'strict_variables' => '%kernel.debug%',
  17. ));
  18.  
  19. // ...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Panicz74
post
Post #2





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

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


Tutaj masz fajny parser dla formatu YAML, który pomoże Ci zrozumieć o co w nim chodzi:
yaml-online-parser.appspot.com

Jak widać, Fabian pomyślał o wszystkim (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
lukaskolista
post
Post #3





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

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


Cytat
co to za magia w plikach konfiguracyjnych YAML?
Ty chyba magii nie widziałeś(IMG:style_emoticons/default/smile.gif) akurat Symfony bym o magię nie posądzał.

Przechodząc do odpowiedzi na Twoje pytanie:
serio, gdzie tu jest magia?

Jak nazwa wskazuje import służy do importu, więc wywołujemy metodę ->import('resource.yml')
Jak nazwa nie wskazuje, ale uwierz mi na słowo framework i twig to nazwy pakietów w Symfony, a do ładowania konfiguracji pakietów służą właśnie rozszerzenia tych pakietów (extensions), więc użycie metody ->loadFromExtension($extension, array $config) jest całkiem logiczne.

Nie rozumiem, czemu resources i framework miały by być obsługiwane w ten sam sposób, skoro służą do różnych rzeczy. To tak, jakbyś miał w konfiguracji klucze "email" i "user" i byś się dziwił, dlaczego dla "email" jest używana metoda send(), a dla user login().

Podsumowując:
MAGII BRAK, JEST OK

Jeżeli zaczynasz naukę Symfony i masz małe doświadczenie w php, to używaj YAMLa (z resztą w wewnętrznych pakietach aplikacji powinno się go używać), ew. XML dla pakietów zewnętrznych, które chcesz publikować. Formatu PHP nie używaj i nie zawracaj sobie nim głowy.

Ten post edytował lukaskolista 28.01.2016, 10:54:54
Go to the top of the page
+Quote Post

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: 24.08.2025 - 01:26