Myślę nad tym, jak rozwiązać problem z modułowością systemu CMS. Ważne, by rozwiązanie było optymalne i wydajne.
Rozważam zmianę budowy systemu CMS. Są 2 możliwości.
Rozpoczynanie od bazowego pliku index.php
Podobnie, jak obecnie. Większość podstron dołączanych jest z 1 głównego pliku index.php.
Plusy:
Nie trzeba wpisywać kodu odp. za wyświetlenie szablonu w każdym module
Minusy:
Dłuższe adresy stron
Brak większej ingerencji w kod HTML (m. in. tytuł strony)
Dołączanie pliku jądra przez niezależne moduły
Są pliki modułów: index.php, news.php, art.php, itp. Od nich będzie zależało, czy dołączą później plik odpowiedzialny za wyświetlenie pełnej oprawy graficznej, czy tylko samego środka (bez menu i nagłówka).
Zdania są podzielone - jedni uznają za najlepsze rozwiązanie pierwsze, a inni drugie. I co tu wybrać? Zależy mi głównie na szybkości oraz dołączaniu jak najmniejszej ilości plików. Uproszczone schematy:
Index.php
– kernel.php + ustawienia + język
– plik modułu
– plik skórki
---- zazwyczaj: drugi plik modułu (bo równie dobrze może też to być komunikat)
Art.php lub inny:
– kernel.php + ustawienia + język
– szablon.php
---- plik skórki
------ zazwyczaj: drugi plik modułu (bo równie dobrze może też to być komunikat)
Szablon.php można by ominąć, gdyby pliki skórek zawierały kod od do - ale jest w nich tylko zawartość
.
Aktualnie stosuję - index.php:
– kernel.php + ustawienia + język
– switch() dla kilku przypadków przed
– jeśli istnieje - plik head.php w plugins/…/
– plik skórki
---- d.php (wybór modułu lub kategorii)
------ plik modułu lub kategorii
Inne pliki (np. menu) pominąłem. Jak widać, różnicy w ilości dołączanych plików zazwyczaj nie będzie. Pozostaje jeszcze kwestia optymalizacji - w tym ilość zmiennych w pamięci. Aby ustawić tytuł strony, trzeba pobrać dane z bazy już na początku (pierwszy plik modułu).
Jeśli coś wiecie na ten temat, doradźcie. {menu}, {content}… nie stosuję.