![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Mam pewną metodę, którą potrzebuję używać w wielu akcjach kontrolera.
Aby nie powielać kodu zastanawiałem się czy nie powinienem zrobić nowy serwis w kontenerze usług i wstrzykiwać ją ? Jak powinienem to zrobić aby było to zgodne z dobrymi praktykami ? Metoda wygląda tak:
Czy jest sens abym utworzył sobie osobną klasę z jedną poniższą metodą i zapisał ją w kontenerze usług a później wywoływał w róźnych akcjach kontrolera ?
Czy może źle się do tego zabieram ? Będę wdzięczny za podpowiedź. Ten post edytował damianooo 17.03.2017, 22:59:16 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego nie zrobisz sobie nowego controllera którego będziesz po prostu dziedziczył ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Chyba nie do końca jasno napisałem o co mi chodzi.
Mój problem wydaje się że nie ma nic wspólnego z kontenerem usług. Potrzebuję na każdej podstronie mojego serwisu wyświetlać w panelu tą samą informację (np. numer kolejki piłkarskiej w danym tygodniu) Wydaje mi się jednak bez sensu wywoływać tą samą metodę w każdej akcji kontrolera - dlatego kombinuję jak to ugryźć. Najlepszym rozwiązaniem byłoby chyba abym w głównym szablonie (base.html.twig) w sekcji np. info {% block info %} wyświetlać dane pobrane tą metodą. Jak tylko przekazać dane do szablonu base.html.twig ? A może inaczej to powinienem zrobić ? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tworzysz twig extension, jeśli potrzebujesz to dorzucasz jej doctrine'a, definiujesz tam nową funkcję którą możesz użyć w dowolnym szablonie twiga.
http://symfony.com/doc/current/templating/..._extension.html - tu akurat masz Filter, ale tak samo tworzy się Function. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
To jest chyba dokładnie to czego potrzebuję.
Poczytałem trochę o tym i zaimplemenowałem w moim projekcie jednak chyba czegoś brakuje w mojej klasie albo źle się odwołuję do mojej funkcji ponieważ mam następujący błąd:
Mój TwigExtension wygląda tak:
services.yml :
wywołanie funkcji w base.html.twig mam takie:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
To jest funkcja, więc wywołujesz ją jako funkcję po prostu, czyli
i tyle (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 496 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
ok działa ... dzięki ohm ... brakowało mi jednak Doctrina i w serwisach argumentu:
services.yml
a w base.html.twig wywołanie :
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 14:11 |