[CMS] Budowa CMS-a a modułowość i szybkość

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

Które rozwiązanie preferujecie?

Uargumentujcie i uzasadnijcie swoją wypowiedź.

Ja wspieram to drugie rozwiązanie.

Na swojej stronie zrobiłem tak jakby ‘system szablonów’ .

Oczywiście w sieci można znaleźć podobne, gotowe już klasy.

Fast template, bardzo wolne smarty itd.

Wówczas przesyłasz dane do szablonu i zwracasz je.

Głównie bazuje to na str_replace i filegetcontents …

W pliku html umieszczasz przykładowo coś takiego:

{menu}, a później w zamianie ciągów - wysyłasz chociażby funkcję odpowiedzialną za wyświetlanie newsów :wink:

Jest to rozwiązanie uniwersalne i przy dobrym zastosowaniu - szybkie.

Drugi przedstawiony przez Ciebie sposób zły nie jest.

Sprawia wrażenie szybkiego, lecz trudniej cokolwiek do niego dodać.

Z tym bezproblemowo można sobie poradzić.

.htaccess + mod rewrite i już śmiga :slight_smile:

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. :slight_smile: {menu}, {content}… nie stosuję.