Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Modułowość systemu
Forum PHP.pl > Forum > Przedszkole
Mefiuu
Witam serdecznie forumowiczów po dłużej absencji.

Zwracam się do Was z prośbą o pomysł. Chcę stworzyć portal o ścisłej tematyce. Będzie to portal dostarczający informacji z konkretnej dziedziny. Z założenia będzie tam sporo funkcjonalności, dlatego chcę go stworzyć tak aby to miało 'ręce i nogi'. Nie chcę się pchać w jakiś framework z prostych przyczyn:
1. system nie będzie aż tak rozbudowany
2. nie znam po prostu żadnego i nie zamierzam się uczyć

Ten portal ma być hobbistyczny, co w połączeniu z pewnymi umiejętnościami programistycznymi może dać fajny efekt. Chciałem zrobić coś na zasadzie takiej struktury:

public_html
  • index.php
  • artykul.php
  • galeria.php

itd. W każdej z tych podstron chcę mieć konkretne moduły, które mogę włączać / wyłączać wygodnie w panelu admina i przechowywać te dane w bazie. Te moduły to będą proste 'kafelki' z lewej, bądź z prawej strony, w zależności gdzie są ustawione. Mój wybór padł na smarty jako, że trochę na wakacjach w pracy liznąłem tego systemu i całkiem nieźle to wygląda. Jednak o ile się orientuję (może mylnie) to po zainstalowaniu smartów w index.php i podaniu konkretnej ścieżki do templatek będzie to obsługiwało tylko pliki w katalogu głównym. Ja jednak chciałbym móc tworzyć nowe foldery np. public_html/modules/shoutbox/ a w nim struktura odpowiedzialna tylko i wyłącznie za moduł shoutboxa (to tylko czysto teoretyczny przykład). Czy w takim wypadku do każdego modułu powinienem tworzyć index.php który będę includował np. w pliku artykul.php oraz w tym indexie znów instalować jakoś smarty żeby mi pobrało templatkę z podkatalogu np. public_html/modules/shoutbox/templates/ ? Nie mogę tego zbyt dobrze pojąć, stąd moje pytanie - jak Wy byście coś takiego rozwiązali ? Czy są jakieś darmowe systemy które coś takiego podobnego wykorzystują ? szukałem po systemach for, wordpressach i innych takich ale nie znalazłem rozwiązania. Musi to być rozwiązanie proste i spełniające swoją rolę, bo znudziło mi się mieszanie html + php w jednych plikach.

Z góry dziękuję za podpowiedzi.

Pozdrawiam serdecznie.
Tomplus
Ale przecież możesz sam stworzyć sobie taki prosty system:

index.php
szablon.html
/moduly/

w szablonie masz zmienne tekstowe np {{Naglowek}}, {{Menu}}, {{ModulA}} itd które potem zamieniasz przy pomocy funkcji z index.php na treść którą umieszczasz gdzie indziej np. odnosisz się do modułów lub bazy danych.

Mefiuu
Cytat(Tomplus @ 22.10.2015, 01:20:38 ) *
Ale przecież możesz sam stworzyć sobie taki prosty system:

index.php
szablon.html
/moduly/

w szablonie masz zmienne tekstowe np {{Naglowek}}, {{Menu}}, {{ModulA}} itd które potem zamieniasz przy pomocy funkcji z index.php na treść którą umieszczasz gdzie indziej np. odnosisz się do modułów lub bazy danych.


myślałem o takim rozwiązaniu i wydaje mi się idealne, tylko nie wiem jak zrobić jedną rzecz - jak w katalogu /moduly/shoutbox/ wykorzystać smarty tak, aby po zaincludowaniu /moduly/shoutbox/index.php pobierało mi templatkę z /moduly/shoutbox/templates/index.tpl ? Wtedy system spełniałby swoją funkcjonalność jak dla mnie.

Pozdrawiam.
czychacz
Z mojej strony wydaje się, że nie ma sensu pchać się w smarty. Nie wystarczą ci includowane *.phtml? I tak - sądząc po opisie tego, co robisz - nie zamierzasz stosować się do jakichś poważniejszych zasad. Obsłuż sobie po prostu gdzieś wczytywanie szablonu z PHTML w dowolnym miejscu (dla /moduly/shoutbox/index.php będziesz musiał pobrać nazwę pliku - __FILE__ - a później doklejasz tylko templates i rozszerzenie szablonu).
Mefiuu
hmm... nie mogę znaleźć nigdzie konkretnej informacji jak wygląda taki plik ... ale z tego co wyczytałem to nie jest jednak dalej pomieszane html z php ? tego jednak chcę uniknąć :/ chciałbym mieć tak jak w smartach - jeden plik odpowiedzialny za logikę - tak jak shoutbox.php oraz w katalogu templates inny, który przechowywałby tylko html - jak np. /templates/shoutbox.tpl . To byłoby idealne rozwiązanie.

Pozdrawiam
Pyton_000
phtml to nic innego ja system szablonów oparty o znaczniki php a nie jakieś nakładki. Krótko to phtml jest skompilowaną wersją innych systemów szablonów typu smarty, twig itp.
Uzywasz znaczników php do wyświetlania, pętli itd.
Mefiuu
Czyli de facto tak jakbym stworzył sam plik shoutbox.php i w nim pobierał dane oraz wyświetlał ? Trochę to dziwne według mnie, chyba że czegoś nie rozumiem do końca. Tworzę plik shoutbox.php oraz shoutbox.phtml ? Czy tylko ten drugi ?

@edit:

A czy mocno obciążające będzie jeśli w każdym katalogu takiego swojego modułu będę tworzył instancję jakiegoś systemu szablonów ? w sensie includował po prostu smarty z katalogu głównego, tworzył obiekt i to będzie mi obsługiwało templatkę ? (smarty bądź jakieś opt)

Pozdrawiam
czychacz
Nie, nie musisz w nim pobierać danych. Po prostu includując go, masz do tych danych dostęp. Jeśli includujesz w obiekcie, masz dostęp tylko dodanych dostępnych obiektowi - scope zależny od miejsca includowania.

//edit: Nie polecam tworzyć instancji obiektu obsługującego szablon dla każdego katalogu (przynajmniej w przypadku smarty) - wtedy robi się syf, nad którym w skrajnych przypadkach trudno zapanować.
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.