Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny][SF2][Symfony2] Katalogi projektu i widoki
Forum PHP.pl > Forum > PHP > Frameworki
kosmos
Witam,
2 tematy:
1)
poleceniem
  1. php app/console generate:bundle --namespace=Acme/PageBundle --format=yml

wygenerowałem projekt w SF2 z następującą strukturą katalogów:

Adres:
http://localhost/symfony/web/app_dev.php/homepage/
otwiera stronę główną na której znajduje się odnośnik do strony z ofertą. Strona główna korzysta z widoku bazowego
symfony/app/Resources/views/base.html.twig
strona z ofertami z widoku
symfony/src/Acme/PageBundle/Resources/views/Default/offer.html.twig
czy to jest poprawne rozwiązanie? Jeden widok w app, drugi w src. Czy takie rozwiązanie nie bedzie problematyczne docelowo gdy będę wrzucał projekt na zewnętrzny hosting?

2)
Bundle domyślnie tworzy się w katalogu src są tam wszystkie pliki projektu, kontrolery, zdjęcia, style (widac na powyższym zdjęciu). Dlaczego tak jest skoro docelowo na serwerze folder public_http, to folder WEB z symfony. Przecież w katalogu web nie tworzy się projektu i wszystko jest w src ...

Pytania co dla niektórych pewnie banalne, ale proszę weźcie pod uywagę to że jeszcze raczkuję w tym temacie.
wujek2009
1)

Strona z ofertami to zwykły listing? Plik/szablon "base.html.twig" traktuj jak szablon/szkielet Twojej strony www. Ja bym proponował trzymać tam szkielet sekcji HEAD, ustawić render CSS+JS (itp) a sam widok (powiedzmy wygląd strony głównej) trzymać w oddzielnym pliku np. "front-layout.html.twig" (w lokalizacji np. app/Resources/views)
i niech ten widok "front-layout" dziedziczy po "base.html.twig" - więc będziesz miał szkielet dokumentu + podstawowe elemnety np. DIV (z front-layout.html) i na końcu dokładasz treść dynamiczną (np. środek) z widoku danego bundla (np. symfony/src/Acme/PageBundle/Resources/views/Default/offer.html.twig)

Czyli w konsekwencji masz trzy pliki, które będą Ci renderować widok:
1) app/Resources/views/base.html.twig - szkielet dokumentu (później go wykorzystasz np. w panelu admina, aby nie dubolować ciągle tagów HEAD)
2) app/Resources/views/front-layout.html.twig - wygląd strony głównej (podstawowe divy, które wiesz, że będą pojawiać się na każdej podstronie)
3) [dynamiczny widok zależny od danej akcji]

2) Pliki aplikacji (mówię tutaj np. o kontrolerach, innych klasach) możesz trzymać poza katalogiem gdzie domena jest kierowana. Symfony najzwyczajniej wczytuje zasoby z katalogu "niżej". Wspomniałeś także o CSS/JS/IMG - według standardu powinieneś "przepisać" te zasoby do katalogu "web" - one wówczas "przetransferują" się z danego bundle do katalogu "web" i będą one ogólnodostępne. Spójrz na fragmenty tego artykułu: http://symfony.com/doc/current/cookbook/as...rod-environment
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.