![]() |
![]() ![]() |
![]() |
![]()
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'))); |
|
|
![]()
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. |
|
|
![]()
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. |
|
|
![]()
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
|
|
|
![]()
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. |
|
|
![]()
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. |
|
|
![]()
Post
#7
|
|
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 |
|
|
![]()
Post
#8
|
|
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.
|
|
|
![]()
Post
#9
|
|
![]() 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. |
|
|
![]()
Post
#10
|
|
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? |
|
|
![]()
Post
#11
|
|
![]() 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
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 12:05 |