Pyton_000
14.08.2014, 07:45:39
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
19.08.2014, 13:21:59
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
19.08.2014, 13:30:03
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
19.08.2014, 13:46:53
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
20.08.2014, 07:31:59
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
20.08.2014, 10:13:06
Od tego jest workbench. Zawierasz w nim konfigurację, modele, widoki i całą resztę. Potem wystarczy zarejestrować service providera i masz gotowy moduł.
Pyton_000
20.08.2014, 10:38:30
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
20.08.2014, 11:05:27
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
20.08.2014, 15:59:42
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.