Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inny][SF2][Symfony2] Katalogi projektu i widoki, struktura katalogów
kosmos
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

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


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:
(IMG:http://naforum.zapodaj.net/thumbs/b35910330217.png)
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.

Ten post edytował kosmos 14.03.2015, 21:22:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
wujek2009
post
Post #2





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


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
Go to the top of the page
+Quote Post

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: 23.08.2025 - 04:57