Slim Framework - kilka problemów z tworzeniem bloga

Slim Framework - kilka problemów z tworzeniem bloga
WJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

Piszę prostego bloga w Slim Framework, ale napotkałem kilka problemów, albo raczej niejasności, z którymi wolałbym się zmierzyć w taki sposób, w jaki powinno się to robić, zamiast kombinować po swojemu.
Pierwsza sprawa - MVC, jeśli mogę to tak nazwać. Stworzyłem klasę modelu, która pobiera i przetwarza dane z bazy, zwracając je w przyjaznej formie. Widoki - wiadomo. Za kontroler robi mi plik routes.php (korzystam z "gotowca" slim skeleton), w którym każde przekierowanie jest tak jakby osobnym kontrolerem dla poszczególnych stron. Nie wiem czy to dobre rozwiązanie, ale sprawdza się i jest nawet wygodne, wystarczy obudować wszystko w odpowiednie komentarze. Jednakże pedantyczna część mnie mówi "to może być rozwiązane bardziej elegancko", pytanie tylko jak?
Druga sprawa, najważniejsza - nie podoba mi się trochę to podejście: załaduj dane, przekaż do widoku, wyświetl widok. Wydaje mi się, że to trochę ogranicza pole do popisu. Chodzi mi głównie o jedną rzecz - przykładowo odpalam konkretny post na moim blogu, czyli ładuję dane pobrane z modelu metodą, dajmy na to, getArticle($id), dostaję je ładnie opakowane w tablicę, którą przekazuję widokowi, następnie wyświetlam widok, wszystko gra. Ale co jeśli potrzebuję obok wyświetlić archiwum i kategorie, które będą ładowane na podstawie obecnie istniejących w bazie postów? Mam do tego dwie metody, mogę pobrać nimi dane, dostanę kolejne dwie tablice... ale co dalej? Czy muszę w każdym kontrolerze i w każdym widoku osobno łączyć wszystko do kupy i za każdym razem wyświetlać to samo? Nie da się tego zrobić w jakiś sposób automatycznie i bardziej elegancko? Chodzi mi o coś w stylu: ładuję "szkielet" strony, header, navbar, menu, etc., następnie dany kontroler ładuje mi tylko element, powiedzmy, "#content", oraz wszystkie zmienne odpowiadające za tytuł, słowa kluczowe itd.
Kolejna rzecz, łącząca się w pewien sposób z poprzednią, to sposób budowania widoków. Obecnie robię to na zasadzie: kontroler ładuje widok, każdy widok sam ładuje header i footer. Nie wydaje mi się żeby to było dobrym rozwiązaniem. Jak się do tego zabrać?
Wydawało mi się to banalnie proste, jednak takie "szczegóły" namąciły mi w głowie... Może powinienem się zainteresować jakimś większym frameworkiem, przejrzeć kilka tutoriali na ten temat, zerknąć na kod jakichś aplikacji tego typu... Mógłby ktoś się wypowiedzieć na ten temat, zarzucić radą, linkiem, czymkolwiek? Dzięki z góry.

czysteskarpety
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Piwnica
  • Postów: 7697
0

nie musisz robić oddzielnego kontrolera dla każdej podstrony (no chyba, że tam masz bóg wie jakie funkcjonalności) normalnie możesz zrobić w jednym, potem możesz ustawić odpowiednio cache i htaccess aby powtarzające się skrypty/libsy/pliki nie były ładowane ponownie, wtedy ładuje ci się tylko nowy content, a reszta zostaje

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
0

Jeśli ten slim nie ma jakiegoś dedykowanego systemu szablonów - to możesz użyć TWIG'a, tam do widoków można stosować dziedziczenie, includowanie i całą masę innych bajerów.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.