Witam,
już od dłuższego czasu uczę się programować w PHP i staram się za każdym razem uczyć czegoś nowego i poszerzać swoją wiedzę. Do tej pory w większości przypadków korzystałem z dokumentacji php, czy też danego framework'a chcąc rozwiązać jakiś problem. Jednak niedawno postanowiłem wydzielić jeszcze trochę czasu wolnego na realizację jakichś tutoriali. I tak natrafiłem na Symfonycasts, gdzie nie ukrywam dowiedziałem się kilku nowych rzeczy na temat funkcjonalności, z których korzystałem wcześniej na podstawie dokumentacji Symfony, jednak jedna sprawa wciąż nie daje mi spokoju. Wcześniej programowałem trochę na czystym php (bez frameworków) i do frameworków przekonał mnie model MVC. Do tej pory pisząc w Symfony, czy to w innym frameworku starałem się maksymalnie jak się da przesunąć całą logikę do kontrolera, a w widoku wywoływać tylko wypisanie gotowych danych na ekran i tutaj wracając do Symfonycasts dowiedziałem się na początku, iż wszystkie funkcje i filtry twiga (domyślne, bundle, czy to własne ) są zawsze ładowane do pamięci niezależnie czy dany widok z nich korzysta, czy też nie. Następnie zostało zobrazowane, iż dane odnośnie powiązanych tabel w db można wyciągnąć bezpośrednio w twigu (zamiast tworzyć tablicę na np. komentarze do artykułu w kontrolerze i tam też wyciągnąć te dane a potem przesłać do widoku). Z tego co zrozumiałem z kursu to te dane są wtedy ładowane dopiero wtedy kiedy zostaną wywołane do wypisania (widzę w takim razie potencjał do pierwotnego ukrycia komentarzy i dopiero, gdy użytkownik kliknie przycisk 'pokaż komentarze' wywołanie linii kodu, która je wypisze na ekran, lecz o ile się nie mylę to samo można osiągnąć tworząc funkcję w kontrolerze i używając ajaxa) To samo się tyczy funkcji 'ago' w twigu ( można przecież napisać funkcję w php, która obliczy nam różnicę czasu i wrzuci do tablicy już gotowe dane) . Tutaj mam pytanie odnośnie tego jak używanie tych funkcji twigowych ma się więc do wydajności aplikacji i do ścieżki oddzielania logiki od widoku danego projektu, bo do tej pory myślałem, że właśnie lepiej jest napisać swoją funkcję w kontrolerze, czy też użyć bundla w kontrolerze niż bezpośrednio w widoku za pomocą twiga, a teraz po tym kursie nie jestem już tego taki pewien.
Za wszystkie odpowiedzi z góry dziękuję.