I. Generalitati
1. Scop
Fragmentarea taskurilor. Afisarea unui meniu nu se intampla in clasa in care ai logica pentru managementul paginilor statice.
2. Url
http://www.mojavi.org si
http://www.agavi.org/
3. Scurt intro
Este o implementare clasica a MVC-ului. Este impartit clar pe layere, avem controler si actionuri (comenzi), viewuri (clasele view si templateuri) si modeluri.
Exista 3 variante:
- (php4) mojavi 2 - probabil cel mai stabil dintre variante
- (php5) mojavi 3, care a fost pentru moment abandonat si succesorul sau agavi - pana si 3 simplu mi se pare destul de matur (nu am gasit foarte multe buguri si nici unul dintre ele care sa nu poata fi reparat rapid)
- (php5) mojavi 4 - the cutting edge - dupa cate am inteles, creatorul original al lui Mojavi a abandonat acest branch, de dezvoltarea lui ocupandu-se altcineva. Din nefericire, toate cele 3 tentative de al testa s-au soldat cu esecuri (deh, poate am eu prea mult "noroc")
II. Pro
- impartire extrem de clara a taskurilor
- foarte multe obiecte shared (context si membrii lui nu sunt trimisi de la o componenta la alta, ei sunt prezenti all over the place, ca un fel de variabile globale - poate ca un alt aproach, de exemplu context sa fie un singleton, ar fi fost mai indicata)
- acomodare (pentru mine) destul de rapida
- impartirea pe module (modulele sunt colectii de dublete action-view, oarecum related)
- fiecare bucata configurabila are propriul fisier de configurare - o aplicatie desktop, in genul Delphi sau CBuilder, s-ar preta foarte bine la crearea unui IDE RAD bazat pe acest framework (daca as fi in an terminal, as stii care imi este lucrarea de diploma

).
- impartirea viewurilor complexe in viewuri simple (patternul Decorator si sloturile): poti face ca unele variabile din templateuri sa fie populate de alte dublete action-view.
- sistem inteligent de autoload (dar ma gandesc daca treaba aia ar mai merge daca codul ar fi ofuscat)
III. Contra
- fiecare bucata configurabila are propriul fisier de configurare - sunt prea multe, damnit
- complexitate destul de ridicata (acest lucru poate fi contracarat cu o serie de scripturi generatoare, dar pentru un newcommer, acest lucru poate fi coplesitor)
- lipsa documentatiei si a exemplelor (de exemplu, inca nu m-am prins pentru ce sunt folosite filtrele)
- fiecare varianta (2, 3 si 4) folosesc alte aproacheuri si trecerea de la o versiune la alta e destul de complicata.