Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomysł na "Lekki" CMS
Forum PHP.pl > Forum > PHP
Avatarus
Witam
Ostatnimi mieliśmy (i w sumie znowu mam) problemy z serwerami które ciągle nie wyrabiały. Wyszło na to że bazy danych nie wyrabiają.
Mam serwer Homa Business Pro dla strony www.silkroadonline.com.pl.
Problem w tym że używamy PHP-Fusion + PHPBB by przemo...a to jak wiadomo dwa giganty...
No ale dość wstępu.... Po tym całym doświadczeniu postanowiłem napisać własnego CMS którego będę implementować w wszystkich swoich nowych stronach.
Ideą jest CMS w pełni zarządzany w panelu admina, jednak same połączenia z bazą od strony użytkownika mają być ukrócone do minimum.
Chciałbym was zapytać jako specjalistów od php mysql itp czy moje rozwiązania są trafne czy przypadkiem nie robie jakiegoś straszliwego błędu...

Kilka przykładów.
W fusionie menu tworzone dynamicznie na stronie z każdym jej odświeżeniem. Łączy się z bazą, sprawdza linki, potem w skrypcie tworzy cały panel linków. No niby OK, ale moim zdaniem to zbyteczne posunięcie.
Ja zrobiłem coś takiego że Panel nawigacji od strona admina jest także dynamicznie tworzony. Pozycje w menu można przesuwać klikając w strzałki. Można robić poziomy linków, ustawiać jak się mają otwierać jakiego stylu ma używać do kolorowania itp. Tylko potem zrobiłem opcje "Generuj plik nawigacji". Tym sposobem mamy stały plik menu. Nie tracimy zbędnych połączeń na menu, które i tak w 95% czas jest niezmienne.
Kolejna sprawa to artykuły. Nie są one przechowywane w bazie, bo niektóre z nich są naprawdę obszerne. Postanowiłem artykuły trzymać w plikach a w bazie mamy tylko tabele ze spisem artów i podstawowymi informacjami o nich, czyli tytuł, plik, autor, data itp.

Powiedzcie ci czy takie rozwiązania są dobre.

Z góry dziękuję.
starach
Przechowywanie artykułów w plikach ze względu na dużą objętość nie jest dobry posunięciem.
Przykładem mogą być serwisy hostingowe które po wgraniu przez użytkownika pliku, odczytują jego zawartość i umieszczają go w bazie.
Radzę ci to samo zrobić z artykułami ewentualnie dodać stronicowanie czyli podzielić artykuł na kilka stron żeby łatwiej się go czytało.
Co do generowania "pliku nawigacyjnego" to jest to moim zdaniem dobre rozwiązanie. Taki swojego rodzaju cache smile.gif

Jeśli idzie o to że jesteś użytkownikiem PHP Fusion i PhpBB to radzę ci przeszukać to forum,
dlatego że oba te systemy uczą programistów bardzo złych nawyków jak używanie globali.
webdice
Co do artykułów proponuje Ci użyć cache oraz serializacje. Artykuły oczywiście zapisujesz w bazie, podczas pierwszego połączenia pobierasz z bazy informacje o artykule, następnie serializujesz tablice i zapisujesz do pliku. Od tego czasu klasa obsługująca bazę danych powinna czytać z pliku. Po edycji artykułu usuwasz plik z cache, a sterownik ponownie powinien pobrać sobie dane z bazy i zapisać. To samo możesz zrobić z menu.

Pod wieczór postaram się napisać coś więcej.
Nekro
Cytat(webdicepl @ 18.01.2008, 13:19:53 ) *
Co do artykułów proponuje Ci użyć cache oraz serializacje. Artykuły oczywiście zapisujesz w bazie, podczas pierwszego połączenia pobierasz z bazy informacje o artykule, następnie serializujesz tablice i zapisujesz do pliku. Od tego czasu klasa obsługująca bazę danych powinna czytać z pliku. Po edycji artykułu usuwasz plik z cache, a sterownik ponownie powinien pobrać sobie dane z bazy i zapisać. To samo możesz zrobić z menu.


Zgadzam się z przedmówcą. Takie rozwiazanie zastosowałbym dla wszystkich danych prezentowanych na stronach zarzadzanych przez CMS, czyli: artykuly, newsy, dokumenty, menu itp.
Można by sie nawet pokusic o wrzucanie w cache calych podstron z wygenerowanym html, albo jesli masz podzial na boksy w szablonie wrzucanie do cache kazdego wygenerowanego boksa . Jesli dane z danego boksa sie zmieniaja usuwa sie cache i na nowo generuje.

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