Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Modułowość systemu
Mefiuu
post
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 884
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


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.

Go to the top of the page
+Quote Post
Mefiuu
post
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
czychacz
post
Post #4





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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).
Go to the top of the page
+Quote Post
Mefiuu
post
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Mefiuu
post
Post #7





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował Mefiuu 22.10.2015, 17:49:53
Go to the top of the page
+Quote Post
czychacz
post
Post #8





Grupa: Zarejestrowani
Postów: 189
Pomógł: 13
Dołączył: 20.09.2008
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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ć.

Ten post edytował czychacz 23.10.2015, 11:22:26
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 02:08