Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SF][SF2][Symfony2] proste sprawy związane z architekturą
Foxx
post
Post #1





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Pytanie 1.
Załóżmy, że chciałbym sprawdzić czy produkt jest w schowku, chciałbym użyć funkcji {% if product.inClipboard %} w twigu.
Sprawdzanie polega na zbadaniu tablicy umieszczonej w sesji. Gdzie powinna się znajdować deklaracja tej funkcji? Encja wydaje mi się niewłaściwa bo potrzebuję dostępu do sesji i nie ma to nic wspólnego z bazą danych (o ile to jest kryterium). A więc repozytorium? Ale wtedy trzeba napisać trochę kodu żeby móc użyć tej funkcji w szablonach.

Pytanie 2.
Podobna sytuacja, produkt jest w relacji z encją "galeria", która jest w relacji z encją "zdjęcie".
Potrzebne jest {% product.getMainImage %} w twigu. Gdzie powinna się znajdować deklaracja tej funkcji? Różnica polega na tym, że ustalenie main image polega na pobraniu pierwszego ze zdjęć w przypiętej galerii więc jest to tylko manipulacja bazą danych.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Cytat
I co w tym złego? Jeśli potrzebujesz w repozytorium dostęp do jakiegoś serwisu to w jaki sposób go obejdziesz? Z drugiej strony, to nie jest w żaden sposób powiązane z bazą, więc repozytorium lepiej zostawić.

Złe jest dlatego, że nadajesz repozytorium kolejną zależność (musisz tą zależność dostarczać przy pisaniu testów). Dodatkowo obciążając to repozytorium kolejnym zadaniem. Co gorsze zależność ta jest związana z jednym z kontekstów uruchamiania aplikacji (http), jeśli chciałbyś takie repozytorium wykorzystać podczas uruchamiania aplikacji z konsoli to masz problem.

@Foxx uważasz, że dokumentacja Symfony2 powinna przewidywać wszystkie możliwe klasy do obsługi czegokolwiek i podawać programistom w jakich folderach mają być? Musisz mieć obiekt koszyka i koniec. Operowanie na tablicach, wrzucanie jakiś indeksów zwiększanie ilości, gdzieś po kontrolerach jest śmieszne, ciężkie w testowaniu i jest proszeniem się o problemy. Jeśli zastanawiasz się gdzie umieścić taką klasę (a i nie zastanawiaj się w jakim folderze tylko w jakiej przestrzeni nazw) to posłuchaj pedro84 utwórz przestrzeń nazw/folder Cart. Tylko teraz już nie słuchaj pedro84 (to oczywiście tylko moje zdanie) i nie twórz klasy CartManager tylko po prostu Cart.
Go to the top of the page
+Quote Post

Posty w temacie
- Foxx   [SF][SF2][Symfony2] proste sprawy związane z architekturą   12.10.2013, 13:00:24
- - pedro84   1. Jak dla mnie: repozytorium + funkcja Twig. Sorr...   12.10.2013, 13:36:38
- - Foxx   Dzięki:)   12.10.2013, 13:43:21
- - destroyerr   Ad. 1 Absolutnie nie repozytorium. Przecież musisz...   12.10.2013, 18:09:52
|- - pedro84   Cytat(destroyerr @ 12.10.2013, 19:09...   12.10.2013, 19:25:01
- - Foxx   Ad. 1 Rozumiem, ale chyba nie masz na myśli tworze...   12.10.2013, 18:25:09
- - Foxx   Cytat(pedro84 @ 12.10.2013, 20:25:01 ...   12.10.2013, 19:51:38
|- - pedro84   Cytat(Foxx @ 12.10.2013, 20:51:38 ) A...   12.10.2013, 19:53:51
- - Foxx   Trzymam tablicę w sesji i pobieram ją w kontrolerz...   12.10.2013, 20:02:35
|- - pedro84   Cytat(Foxx @ 12.10.2013, 21:02:35 ) A...   12.10.2013, 20:06:19
- - Foxx   A gdzie jest odpowiednia lokalizacja dla takiej kl...   12.10.2013, 20:09:35
- - pedro84   Oczywiście w odpowiednim bundlu, np. AppBundle...   12.10.2013, 20:14:21
- - Foxx   Ale ja mam już Bundle i ten koszyk działa tylko we...   12.10.2013, 20:27:48
- - pedro84   Napisałem Ci już wyżej, AppBundle to nazwa Twojego...   12.10.2013, 20:53:51
- - Foxx   Sorry, nie doczytałem nazwy bundla. Czyli mogę s...   12.10.2013, 21:38:50
|- - pedro84   Cytat(Foxx @ 12.10.2013, 22:38:50 ) S...   12.10.2013, 21:58:12
- - Foxx   Okej, dzięki. A co do pytania to nie jestem pewien...   12.10.2013, 22:03:32
- - pedro84   Zauważ tylko, że zarówno katalog Entity, jak i For...   12.10.2013, 22:11:32
- - Foxx   Szczerze to nie mam ich aktualnie wiele, jedynie t...   12.10.2013, 22:38:47
- - destroyerr   CytatI co w tym złego? Jeśli potrzebujesz w repozy...   13.10.2013, 15:23:00
|- - pedro84   Cytat(destroyerr @ 13.10.2013, 16:23...   13.10.2013, 15:29:55
- - destroyerr   CytatZ kontekstem zgoda jak najbardziej, z zależno...   13.10.2013, 17:39:00
- - Foxx   Dzięki, rozjaśniło mi to trochę spraw. Chyba po pr...   16.10.2013, 00:50:45
- - destroyerr   Rozważ sobie czy nie lepiej do metody Cart::contai...   16.10.2013, 18:25:11
- - Foxx   Dzięki, podoba mi się pomysł połączenia usera z ko...   19.10.2013, 00:33:22


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 19:02