Budowanie CMSa

0

Zabieram się za pisanie CMSa w PHP. Będę na początku nieco wzorować się na wordpressie, więc na początku planuję zrobić system konfiguracji, czyli jak user po raz pierwszy wchodzi na stronę:

  1. Wyświetla się strona z wymaganiami, po kliknięciu "dalej"
  2. wyświetla się strona z wprowadzaniem konfiguracji bazy danych, po kliknięciu "submit"
  3. wyświetla się jakaś inna strona z konfiguracjami i po kliknięciu "submit"

tworzy się plik config.php z wprowadzoną konfiguracją. Potem przy każdym żądaniu sprawdzane jest istnienie tego pliku żeby instalacja odbywała się tylko raz.


Sytuacja - w folderze systemowym chcę stworzyć lokację CONFIG na tego typu rzeczy. W nim dam jakąś klasę config. Po wprowadzaniu danych konfiguracyjnych, żądanie przenosi usera w taki sposób:

<form action="www.foo.pl/system-folder/config-class/set-db-configurations">

I w danej funkcji zapisuję konfiguracje, sprawdzam połączenie i przenoszę do kolejnego formularza (następnej strony konfiguracyjnej).


Problem - dwie rzeczy, routing i mvc.

Takie żądania wymagałyby routingu. A wyświetlanie stron konfiguracyjnych z poziomu klasy po kliknięciu w "submit" sugerowałoby użycie MVC.

Obie rzeczy są możliwe, musiałbym tworzyć routing i jakieś klasy bazowe request/controller/model/view w jądrze całego projektu.

I obie rzeczy na pewno będą niezbędne w CMSie później.

Tylko czy to jest dobre rozwiązanie? Z MVC korzystały by np.:
a) część konfiguracyjna SYSTEM/Config
b) część admina ADMIN/
c) zapewne całą strona użytkownika CONTENT/

Więc trochę to jest rozrzucone...

Macie jakieś sugestie?

1

MVC dla instalatora to IMHO overkill, zwłaszcza że jego przepływ kontroli będzie zupełnie inny niż dla reszty systemu.
Chyba że chcesz robić jakieś wyjątki na potrzeby instalatora - oczywiście można.

Jeśli szukasz wzorców to możesz też się przyjrzeć jak to jest zrobione w Drupal-u.
http://drupal.org/

Chociaż to bardziej rozbudowany pakiet niż Wordpress.

0

Dzięki za radę, ale jest kolejny problem. To jest struktura folderów (cc - nazwa projektu): http://khernik.pl/cc.png

Czyli muszę użyć MVC w folderach: admin, content, config. I tutaj dwa podejścia które przychodzą mi do głowy:

  1. Framework. Wadą jest to że będę musiał przerzucić cały projekt do jakiegoś frameworkowego podfolderu i nie będzie wyraźnego podziału na jądro projektu/pliki użytkownika
  2. Samemu napisać routing, zarządzanie żądaniami itp itd.

Drugi punkt chyba wydaje się być lepszy?

I czy taka architektura, patrząc po strukturze folderów, wydaje się w porządku?

0

W tej kwestii masz co najmniej 3 podejścia:

  • wszystko sam
  • użyć frameworka "klockowego", który nie ogranicza i pozwala się zintegrować częściowo lub całkowicie z czymkolwiek - AFAIK takim frameworkiem jest Zend Framework
  • wykorzystać jakiś framework w całości

1 użytkowników online, w tym zalogowanych: 0, gości: 1