[Symfony2][Symfony]Własny config.yml |
[Symfony2][Symfony]Własny config.yml |
8.06.2013, 10:47:57
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Witam,
jak w osobnym bundle (moduł np GalleryBundle) umieścić powiedzmy w Project/GalleryBundle/Resources/config/... plik config.yml z zawartością Kod title: Kolekcja i później w kontrolerze odczytać te wartości? powiedzmy jakoś tak: return $this->render('ProjectGalleryBundle:Gallery:gallery_index.html.twig', array('title' => $this->get('title'))); |
|
|
8.06.2013, 12:02:39
Post
#2
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Zgodnie z duchem Symfony2 raczej nie powinno być takich luźno "biegających" parametrów po całej aplikacji bo za bardzo nie wiadomo do czego je odnieść. Takie parametry raczej powinny być logicznie zgrupowane i używane przez jakąś usługę.
Skoro miałaby to być osobna usługa to w jej kodzie możesz sobie odczytać dowolny plik (yml, xml...). Ze wsparcie frameworka lub bez. Najprostszym rozwiązaniem jest wywołanie Yaml::parse() w konstruktorze takiej usługi. Niestety będzie to wykonywane za każdym razem. Lepiej więc byłoby konfigurować tą usługę przy budowaniu kontenera zależności. Jak to zrobić? W dokumentacji jest rozdział: Service Container, na samym dole są również linki konieczne do przeczytania. Jako przykład może posłużyć Ci gotowy bundle np. DoctrineBundle. Natomiast jeśli chciałbyś używać parametrów z kontenera zależności (a tak można wnioskować z Twojego kodu) to odradzam takie rozwiązanie. |
|
|
8.06.2013, 12:11:42
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Chodzi mi tylko o miejsce na zmienne, które będą używane gdzieś dalej.
Tworząc moduł galerii, nie chcę za każdym razem wchodzić do kontrolera, szukać, gdzie zmienić linię kodu żeby title się zmienił w dziale z KOLEKCJA na PORTFOLIO... Więc pomyślałem o takim właśnie pliku yml (config był tutaj przykładem), gdzie mógłbym trzymać takowe zmienne takie jak title czy width/height itd... Chodzi o to żeby po wrzuceniu bundla do projektu edytować 1 góra 2 pliki (routing oraz te zmienne). Masz jakiś inny pomysł? Słucham, jestem otwarty na propozycje. |
|
|
8.06.2013, 12:18:55
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) |
Z tego co widzę Tobie chodzi o tworzenie nazw kategorii i ich parametrów. Według mnie zamiast bawić się z configami powinieneś zainteresować się Doctrine
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
8.06.2013, 12:21:02
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Doctrine jest raczej do bazy danych prawda?
Nie chodzi mi tylko o nazwę kategorii. Chodzi o cały config danego modułu. |
|
|
8.06.2013, 12:53:16
Post
#6
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Cytat Masz jakiś inny pomysł? Słucham, jestem otwarty na propozycje. To może napisz co nie odpowiada Ci w rozwiązaniach, które Ci podałem. Chcesz zrobić inaczej to sobie to zrób inaczej. Utwórz sobie plik takowe_zmienne.yml wrzuć sobie zmienne jakie tam chcesz, a np. w kontrolerze:
Jeszcze innym rozwiązaniem jest porzucenie tego frameworka skoro jego filozofia Ci nie odpowiada. |
|
|
8.06.2013, 13:59:31
Post
#7
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 10 Dołączył: 18.12.2007 Skąd: Kraków Ostrzeżenie: (0%) |
Tworzenie swoich plików yml to zły pomysł.
Zbuduj konfigurację GalleryBundle http://symfony.com/doc/2.2/cookbook/bundles/extension.html będziesz wtedy w jednym miejscu miał opcje konfiguracyjne bundle takie jak chcesz -------------------- Masz czas i chęci na zlecenie napisania bundle w Symfony2? A może szukasz pracy jako programista Symfony2 na pełen etat?
Napisz. |
|
|
8.06.2013, 14:07:47
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Nawet tak zrobiony YML?
oraz sam YML Kod title: Kolekcja Tego oczywiście będzie z czasem więcej. Ten post edytował Szymciosek 8.06.2013, 14:09:51 |
|
|
8.06.2013, 14:19:08
Post
#9
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 10 Dołączył: 18.12.2007 Skąd: Kraków Ostrzeżenie: (0%) |
W ten sposób jest za każdym razem parsowany i też niewygodny sposób jakbyś pracował z innymi programistami.
-------------------- Masz czas i chęci na zlecenie napisania bundle w Symfony2? A może szukasz pracy jako programista Symfony2 na pełen etat?
Napisz. |
|
|
8.06.2013, 14:20:02
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Mógłbyś podać jakiś przykład z tego co podałeś? Bo tak czytam, przeglądam, ale nic z tego nie dociera jakoś do mnie za bardzo.
|
|
|
8.06.2013, 14:24:01
Post
#11
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) |
Tak, to wciąż zły pomysł. Jeśli się uprzesz to tak zrobisz.
Jak nadpisać konfigurację z pliku: gallery_config.yml? Testujesz aplikacje żeby wykryć np. brak klucza title w tym pliku (lub nawet brak pliku)? Jak sam piszesz tego będzie z czasem więcej to i większy będzie chaos. |
|
|
8.06.2013, 16:23:02
Post
#12
|
|
Grupa: Zarejestrowani Postów: 88 Pomógł: 10 Dołączył: 18.12.2007 Skąd: Kraków Ostrzeżenie: (0%) |
Są tam przykłady pod tym linkiem przecież:
-------------------- Masz czas i chęci na zlecenie napisania bundle w Symfony2? A może szukasz pracy jako programista Symfony2 na pełen etat?
Napisz. |
|
|
8.06.2013, 16:33:38
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Również był tam przykład tego typu:
http://knplabs.pl/blog/symfony2-dic-extension Zrobiłem tak jak tutaj, ale teraz się zastanawiam jak dostać się z GalleryController do tej wartości, która jest przechowywana w zmiennej $config w klasie KnpTestExtension. Robiąc w tej klasie: var_dump($config); otrzymuję tablicę, a w niej zmienną transform Czy to już jest dobre rozwiązanie? No i czy do każdej zmiennej z pliku config.yml muszę tworzyć odniesienie w services? |
|
|
18.01.2016, 12:44:23
Post
#14
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 9.02.2004 Skąd: Toruń Ostrzeżenie: (0%) |
Do Twig można wstrzyknąć wartości z parameters.yml pisząc w gł. config.yml
Ja sobie zrobiłem tablice (niewielką) i coś tam mogę przekazać (parameters.yml):
Jest pare minusów tego rozwiązania ale czytam sobie te wartości i w kontgrolerach:
i mam do nich dostęp w TWIGach: {{ site.name }} Problem to to że Symfony rzuca warningiem gdy nie ma tego podklucza w tavblicy "site" czyli np. to może być czasami problematyczne: {% if site.description is empty %} -------------------- pauluZ
|
|
|
Wersja Lo-Fi | Aktualny czas: 7.06.2024 - 17:10 |