Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Laravel] Podział na Moduły
Forum PHP.pl > Forum > PHP > Frameworki
Pyton_000
Siemacie.

Ostatni wziąłem na warsztat Laravel 4.2
Poglądałem trochę na YT, poczytałem i zabrałem się do dzieła.

Pytanie na dyskusję. W jaki sposób ładnie rozwiązać sprawę modułowości aplikacji.
Głównie Front/Backend.
Czy dodatkowo stosować podział w ramach modułu na submoduły np. User, Post, Category itp.
lukasz_os
Ja to robie za pomocą namespace i separacji folderów np:
/app/controllers/admin - dla panelu admina
/app/controller/frontend - dla frontendu

Routing za pomocą Route::group z prefiksem lub Route::resource na kontolerze
Pyton_000
W sumie obecnie zrobiłem podobnie z tym że backend mam na
controllers/Backend
a Front w
controllers/

Czyli tylko separacja backendu. Tak samo mam podział Widoków i plików statycznych w Public/
Tylko czy to jest dobre rozwiązanie, bo może są lepsze, bardziej elastyczne. Coś z podziałem na paczki ale nie przy pomocy workbench a coś na zasadzie Modules z ServiceProvider
lukasz_os
Sam dopiero zacząłem zabawę z Laravelem (tzn od miesiąca) i taki podział wydawał mi się najbardzoiej sensowny. Poza tym podobne rozwiązanie zasugerowali mi na chacie laravela. IMO bardzo szybki sposób aby zasiegnąć rady od bardziej doświadczonych osób.
Dejmien_85
Możesz zrobić także podział na moduły (jak np. w Symfony/Zendzie), tj.

app/modules/modul1/controllers (plus reszta folderów, np. modele, pluginy itd.)
app/modules/modul2/controllers (plus reszta folderów, np. modele, pluginy itd.)

Tylko oczywiście należy pamiętać, że folder "modules" musi zostać dodany do class-mappera, tak samo jak i klasy (composer dump-autoload/artisan dump-autoload) - ale to raczej oczywista rzecz (piszę to w gwoli przypomnienia dla Laravel newbies).

Przy tym podziale masz troszkę łatwiej, bo gdy chcesz później do innej aplikacji wgrać dany moduł, to kopiujesz tylko jeden folder z wszystkimi plikami modułu (i nie musisz osobno wklejać kontrolerów, modeli i innych plików danego modułu).
batman
Od tego jest workbench. Zawierasz w nim konfigurację, modele, widoki i całą resztę. Potem wystarczy zarejestrować service providera i masz gotowy moduł.
Pyton_000
Tak się zastanawiam właśnie,
Nie wiem czy to dobre rozwiązanie ale mógłbym podzielić Backend na moduły np: users, categories, pages itp.

Potem takie moduły byłyby używane znowu w innym module np. Backend.

Front można sobie generalnie odpuścić bo jest on z reguły inny dla każdej strony.

Reasumując.

Moduły backendowe które byłyby spinane we wspólnym module Backend.
batman
Moduły backendowe możesz zrobić jako paczki workbench i określić w composerze zależności, dzięki czemu zawsze będzie miał wszystkie niezbędne paczki zaciągnięte.
Dejmien_85
W sumie pomysł Batmana jest najbardziej sensowny, więcej o tym znajdziesz tu: http://laravel.com/docs/packages
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.