Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%)
|
Mam wiele różnych akcji w kontrolerze, które traktuje jak komponenty w sf1. wywołuje je z poziomu twiga.
Jak "najlepiej" udostępnić dla każdej akcji obiekt $menuObj, tak żeby nie szło zapytanie do bazy za każdym razem (IMG:style_emoticons/default/questionmark.gif) Dodam, że korzystam z dwóch kontrolerów: jeden głowny który odpala strony, a drugi powyższy. Akcja w pierwszym odpala się pierwsza i może pobierać obiekty...Chcę tylko, żeby drugi kontroler widział obiekty, wygenerowane przez pierwszy... lub za pomocą jakiegoś serwisu je pobierał... Ktoś wie co z tym zrobić? Może przez sesję....chociaż serializowanie encji to nienajlepszy pomysł..... Ten post edytował blackroger 30.04.2013, 12:28:20 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Po prostu obiekt menu utwórz jako usługę w DICu: http://symfony.com/doc/master/book/service_container.html
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 176 Pomógł: 0 Dołączył: 8.11.2008 Ostrzeżenie: (0%)
|
Ok...Dzięki.
Dobra po spędzonej nocce udało mi się rozwiązać problem. Piszę dla potomnych. Symfony 2 w serwisach tworzy automatycznie instancje typu singletone. Utworzyłem zwyczajną klasę serwisową:
W celu uniknięcia ciągłych zapytań przy wywołaniu getMenu trzeba zablokować wywołanie całej metody getMenu w przypadku, gdy $this->menuObj już istnieje. Poniższy warunek to załatwia.
W ten sposób mamy ogólnodostępny obiekt encji, którego zapytanie do bazy wykona się tylko raz niezależnie od liczby pobrań. Ten post edytował blackroger 1.05.2013, 11:48:49 |
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 23:39 |