![]() |
![]() |
![]()
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%' # ...
|
|
|
![]() |
![]()
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) |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 01:26 |