Powoli to bede zbieral do kupy i opisywal na trac, ale poki jeszcze nie ma, bede tutaj opisywal kolejne punkty specyfikacji. Te bardziej istostne, wplywajace na skalowalnosc aplikacji. A wiec modulowosc :)

Modulami beda wydzielone elementy aplikacji, ktore w latwy sposob mozna odlaczac/wlaczac do projektu. Moduly beda wlaczane do projektu i beda stanowily jego calosc. Struktura katalogow bedzie taka sama jak, struktura aplikacji, czyli, np.:

- controller
  - adm
- module
   - forum
     - controller
       - adm
     - model
     - template
       - adm
- model
- lib
- cache
- store
- plugin
  - comment
  - rating
- template
  - adm
  - css
  - js
- system
  - lib
  - helper
  - template

Aplikacja ma budowe modulowa. Tzn. modul forum bedzie ladowany w systemie. Aplikacja jest oparta o wzorzec MVC, tj. mamy katalogi /controller, /model, /template (widoki). W ktorych mozemy trzymac glowne pliki aplikacji.

Kolejne moduly moga posiadac taka sama strukture, tj. tez zawierac kontrolery, modele oraz widoki.

Mozna zauwazyc, ze wiele katalogow, ma podfoldery /adm, ktore odpowiadaja za panel administracyjny. I tak w widokach jest katalog /adm ktory ma zawierac widoki odpowiedzialne za warstwe prezentacji w panelu administracyjnym. Natomiast kontrolery odpowiedzialne za obsluge panelu musza znajdowac sie w katalogach /controller/adm.

Moduly beda posiadaly konfiguracje w postaci pliku XML, ktora bdzie ustalala opcje danego modulu oraz inne informacje takie jak np. opcje zakladek w panelu administracyjnym. Udogodnieniem moze byc fakt, ze bedzie mozna ustalac indywidualna konfiguracje modulu w zaleznosci od tekstu/watku/czegos tam jeszcze.

Np. mimo, ze globalne ustawienia modulu forum, mowia, ze np. bedzie mozna stosowac HTML w watkach, bedzie ta opcje mozna regulowac indywidualnie w danym watku.

Moduly beda polaczone z wtyczkami, ktore bedzie mozna uzywac w wielu modulach, ale to juz temat na osobny watek :)