Zgadzam się z @Gordon, że brzmi to jak obiekt biznesowy. Ale jeśli jesteś pewien, że tak nie jest, następnym krokiem jest ustalenie, jak możesz to sklasyfikować. Czy to jest pomocnik? Słuchacz wydarzeń? Klasa użyteczności? Gdy już to określisz, zadaj sobie pytanie: czy jest to specyficzne dla pakietu lub czy zamierzasz go ponownie wykorzystać w projektach?
Załóżmy, że zdecydowałeś, że to odbiornik zdarzeń i należy do pakietu. Umieść go w MyBundle/EventListener
. Jeśli jest to pomocnik, umieść go w MyBundle/Helper
. Teraz, jeśli planujesz użyć go ponownie w projektach (co w tym przypadku tak naprawdę nie brzmi, ale pamiętaj o mnie ...), może lepiej byłoby stworzyć dla niego miejsce w vendor
.
Należy pamiętać, że ponieważ Symfony2 jest tak młody, nie istnieje tak naprawdę lista najlepszych praktyk, które odpowiadają na takie pytania. Teraz to zależy od nas, aby zobaczyć, co działa, a co nie. To tak jak na dzikim zachodzie :)
Co w przypadku, gdy nie jest to obiekt biznesowy. Powiedz, że mam klasę "breadcrumb", z dwoma nazwiskami członków i "href"? –
@Robert Nie wiem, gdzie by to zrobił Symfony i Twig. Nadal wstawiałbym go do modelu, ale nie do warstwy Domain, ale do ogólnej warstwy aplikacji, ponieważ jest częścią interfejsu użytkownika. Lub, jeśli jest to wielokrotnego użytku, umieściłbym go w jakimś folderze framework/lib – Gordon