Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2]Obiekty "pomocnicze" w Symfony
athabus
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 48
Dołączył: 2.11.2005
Skąd: Poznań

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


Hej mam takie banalne pytanie odnośnie obiektów pomocniczych w Symfony - nie wiem jak ich używać aby było "symfony way".

Powiedzmy teraz pracuję nad selekcją rekordów z bazy przy czym parametrów jakie mogą zostać użyte do wyboru jest bardzo wiele i mogą one przyjmować różne wartości np. zakres, wartość z założoną precyzją, zgodność z maską bitową itp itd. Ogólnie postanowiłem sobie zrobić taki pomocniczy obiekt, który nazwę "filter", a w którym będzie można zdefiniować te wszystkie ograniczenia na zasadzie

  1. $filter->addPriceConstraint();
  2. $filter->addMaxHeight()
  3. itd itp.


Ogólnie idea jest taka, że na podstawie danych podanych przez użytkownika zostanie w kontrolerze stworzony filtr i wypełniony zostanie danymi po czym przekażę ten filtr do Repository, gdzie odpowiednia funkcja przerobi go na zapytanie sql'owe. I teraz pytanie czy to powinno działać np. jako usługa czyli
  1. $this->get('objectFilter')->createNewFilter()

czy myślę w zupełnie złym kierunku i jakoś inaczej powinno to być zrobione?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Nie ma tutaj czegoś takiego jak "symfony-way", a sposób wykonania tego będzie zależny przede wszystkim od tego jak bardzo rozbudowanego i elastycznego rozwiązania potrzebujesz.

1. To czy obiekty danej klasy będziesz tworzyć ręcznie przy pomocy new czy za pomocą kontenera uzależnione będzie przede wszystkim od faktu (nie) istnienia zewnętrznych zależności dla tego obiektu. Generalnie nie ma to większego znaczenia - klasa i tak powinna wyglądać identycznie, tj. wykorzystanie DIC-a nie wpływa na wygląd i sposób działania kodu.
2. Podstawowym pytaniem jest czy dostępne filtry są strukturą dynamiczną czy statyczną. W przypadku tej późniejszej zadanie jest dużo prostsze, ponieważ zapewne wystarczy, że stworzysz sobie obiekt reprezentujący wszystkie możliwe wybrane filtry, takie coś przekażesz jako argument do metody, który na podstawie wybranych kryteriów utworzy sobie jakieś zapytanie. Jeżeli jest to struktura dynamiczna sprawa się nieco skomplikuje. Możesz pomyśleć nad czymś w rodzaju zestawu klas reprezentujących różnego rodzaju filtry (np. zakres numeryczny od-do, lista wyboru) implementujący wspólny interfejs. Do tego kilka "ukrytych" właściwości informujących jakiej właściwości/kolumny w zbiorze dotyczą. Zanim zaczniemy się rozpisywać musiałbyś dokładniej opisać swoje wymogi.
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 13:35