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