Wpis z mikrobloga

#symfony2 #php

kolejne pytanie z serii "głupich"...

Załóżmy że strona dzieli się na 3 główne części:
- home (główny szablon z info o stronie i zamawianiem produktu)
- panel użytkownika (tu różne funkcje)
- panel admina

panel użytkownika będzie miał dużo funkcji dostępnych w zalżności od zakupionego planu na stronie home.

Można do tego podejść w ten sposób:

Acme\BlogBundle czy też Acme\Bundle\BlogBundle
i tam wszystko trzymać w kupie ale przy tak dużej ilości rzeczy staje się to mało wygodne.
Pomyślałem więc aby rozbić to na poszczególne części, i tak:

Acme\Bundle\HomeBundle
Acme\Bundle\UserBundle
Acme\Bundle\AdminBundle
Teraz żeby to wszystko spiąć razem przydałby się jakiś CoreBundle..

Acme\Bundle\CoreBundle
I tym samym Home, User i Admin dziedziczyłyby po Core... I tu się pojawia moje pierwsze głupie pytanie - jaki jest sens robienia czegoś takiego i co właściwie dałoby mi CoreBundle? Raczej tam i tak niczego nie będę używać... więc nie bardzo wiem do czego mogłoby mi się to przydać... Może źle myślę?

Druga sprawa, UserBundle będzie miał mieć takie funkcjonalności jak np.
- pisanie postów
- raport aktywności
- zmiana nazwy konta
- wysyłanie PW
- itp...

Czy trzymać to wszystko w UserBundle czy powinienem zrobić coś w rodzaju

Acme\User\UserBundle
Acme\User\PostsBundle
Acme\User\ReportBundle
Acme\User\PrivatemsgBundle
Acme\User\EtcBundle
jak to powinno być zrobione? Zakładam że np. opcja "Pisanie postów" to nie będzie jeden kontroler a cos bardziej złożonego, posiadającego własne serwisy, swój routing, itp
  • 4
  • Odpowiedz
@qwelukasz:

używaj tylko jednego bundla głównego, poza 1 AppBundle w którym masz całą logikę biznesową projektu, kolejne traktuj jako pluginy, czyli elementy które będziesz używał w wielu miejscach, taka jest ogólnie idea bundlii

innymi słowy bundle nie służą do tego by oddzielać warstwy aplikacji, tylko po to by tworzyć komponenty do ponownego użycia (np. newsletter, drukowanie faktury itd.), jeżeli nie ma sensu, potrzeby ponownego użycia czegoś w innym projekcie bundle jest
  • Odpowiedz
@rzeka: @Jaslanin: tak myślę że w takim razie chyba lepiej przejść na strukturę katalogów z symfony3...
http://stackoverflow.com/questions/24956881/how-can-i-create-a-new-symfony-project-with-the-new-directory-structure
i mić wszystko w jednym miejscu

wygenerowanie struktury katalogów takiej jaka będzie w #symfony3

SENSIOLABS_ENABLE_NEW_DIRECTORY_STRUCTURE=true composer create-project symfony/framework-standard-edition path/ "2.*"
  • Odpowiedz