Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][Symfony2][SF2]Używanie bundla w bundlu
Forum PHP.pl > Forum > PHP > Frameworki
spacja
Witam, jestem początkujący jeżeli chodzi o SF2 - stąd też przepraszam, za tytuł posta - aczkolwiek nie bardzo wiem jak to inaczej nazwać. Otóż w ramach nauki, staram się napisać mały skrypt do wystawiania faktur.

Otóż na chwilę obecną mam dwa bundle:
1. Frontend/MainBundle
2. Dokumenty/FVATBundle

Wszędzie ludzie piszą, że bundle = osobna funkcjonalność, którą w razie czego można użyć w innym projekcie. OK, więc jest - frontend - wiadomo, FVAT - lista, dodawanie, edycja, drukowanie faktur.

Tylko teraz dwa pytania :
1. czy pliki stylów (.css) powinny być osobne dla każdego bundla ? Czyli mam tworzyć wygląd list z fakturami, wygląd formularza dodawania faktury etc. ? Jeżeli tak to co w przypadku gdy np. w obecnym projekcie formularz ma szerokość 500px - a w innym projekcie, będę miał miejsca na 300px - i co teraz ? za każdym razem trzeba zmieniać tą przykładową szerokość ? Jak to ogólnie ogarną ?

2. Jak połączyć ze sobą te dwa bundle ? Frontend ma za zadanie 'zebrać' funkcjonalności wszystkich bundli w jednym miejscu. Tylko jak mam połączyć te dwa bundle, żeby np. po kliknięciu w link 'Dodaj fakturę VAT' w frontendzie - wyświetlić formularz dodawania ? Stworzyć osobno routing w FrontendBundle typu :
- frontend_fvat_lista ?
- frontend_fvat_dodaj ?

i przy wejściu na np. frontend_fvat_lista - dodać do widoku {% render 'DokumentyFVATBundle:Default:index' %} ? Przecież to podwajanie routingu - to samo mam w FVATBundle o_O


Ma ktoś może jakiś przykładowy projekcik, którym mógłby się podzielić ? Chciałbym zobaczyć jak to wszystko działa na 'żywym' organizmie.
pedro84
1. Szczerze mówiąc, nie rozumiem pytania.
2. Jeśli dzielisz aplikacje na bundle w ten sposób, to po prostu całą funkcjonalność umieszczasz w danym bundlu. Kontroler, etc.
toffiak
Mam wrażenie że próbujesz podzielić coś co podzielone, w twoim przypadku, nie powinno być, skoro nie możesz sensownie dodać funkcjonalności dla MainBundle i dubluje się ona FVATBundle to MainBundle jest niepotrzebny.

Jeśli koniecznie chcesz aby był twój bundle FVATBundle był zupełnie odseparowany i MainBundle był tym głównym to dla FVATBundle nie potrzebujesz dodawać żadnych styli, szablony z FVATBundle można nadpisywać globalnie i prawdopodobnie będziesz musiał je nadpisać.
Jeśli nie chcesz nadpisywać możesz dziedziczyć bundle np: MainBundle może dziedziczyć z FVATBundle, w wersji 2.0 było chyba ograniczenie: dziedziczenie tylko po jednym bundlu jak jest w wersji 2.1 ? niewiem.

Routingu nie musisz dublować, zaimportuj routing z FVATBundle globalnie.

spacja
Dzięki za zainteresowanie smile.gif Już troszeczkę ogarnąłem temat, tylko nadal mam wątpliwości odnośnie styli i plików JS.

Powiedzmy, że mam ten nieszczęsny bundle FVATBundle - powiedzmy również, że ma on być wykorzystany w innych projektach. Bundle zawiera obsługę dodawania/edycji/ etc faktur - czyli tym samym zawiera w sobie formularze dodawania, edycji, tabelki listujące etc. a to wszystko musi 'jakoś' wyglądać.

I powiedzmy teraz, że w obecnym projekcie chce użyć wodotrysków, drag&drop z wykorzystaniem jQuery etc.
W drugim projekcie nie potrzebuje tego - stykną delikatnie ostylowane formularze.

Czy mój bundle FVATBundle powinien zawierać w sobie pliki styli (.css ) ? Czyli ostylowane formularze, wodotryski i inne cuda wianki. Tylko jak to później wstawić do MainBundle -> {% render %} questionmark.gif

Czy mam poszczególne formularze ostylować z poziomu MainBundle ? Czyli np.
w FVATBundle jest div o ID = 'moje_fucktury'

w MainBundle - daję w widoku render akcji np. : {% render 'FVATBundle:Dodaj_fvat:show_form' %}
oraz w MainBundle, w pliku stylów np. 'styl_dla_fvatbundle.css' - daję : #moje_fucktury { background-color: pink; } ?

I teraz : jak nadpisać szablon globalnie ? Chodzi o dziedziczenie ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.