Pozdrav,
naum je sljedeći…
napraviti PHP framework koji je modularan na sljedeći način:
- svatko tko dodaje komponentu u sustav, može nasljediti sve od komponenti iz svoje iznad hijerarhije, ali ne može na nikakav način utjecati na file-ove te komponente iz hijerarhije iznad.
Drugim riječima:
- ako bi se pojavila komponenta u sustavu koja bi imala namjeru da našteti sustavu, smjela bi moći naštetiti samo komponentama koje su u hijerarhiji ispod nje, ali ne i onima iznad.
Znači framework je zamišljen tako da može lako ukapčati treće strane, te da onaj tko uključuje druge u sustav ne mora brinuti što će taj “pokvariti”. Jer taj smije moći pokvariti samo svoju komponentu i one koje će on uključiti ispod sebe.
Da pojasnim i što bi bila komponenta u gornjem kontekstu.
Komponenta bi tu bila ono što često zovemo kontrolerom. No struktura nekog frameworka je uglavnom podjeljena na kontrolere i metode koje pripadaju svakom tom kontroleru.
Npr. imamo kontroler Home i metode tipa: index, edit, delete, gdje url-ovi onda izgledaju:
Home/index , Home/edit, Home/delete.
Sada zamislimo da svaki kontroler unutar sebe može imati novi kontroler…i tako hijerarhijski u dubinu koliko god. Znači konačni url prema nekom kontroleru bi mogao izgledati:
Servis/AmazonTool/Users/Manage
No to nije samo link prema controleru Users i metodi Manage, nego taj link nam pokazuje hijerarhiju komponenti koje su tu uključene.
Tako na pvoj razini egzistira komponenta “Servis”.
Ta komponenta “Servis” može imati na prvoj razini ispod sebe koliko god komponenti. Recimo neka su to sljedeće komponente:
- AmazonTool
- OnlineRacun
- Oglasnik
Kao što vidimo, te sve komponente su nekakvi servisi i zato ih je očito Servis uključio ispod sebe.
No ideja je da svaka ta uključena komponenta egzistira nezavisno od drugih komponenti koje postoje na istoj razini.
Znači developeri komponente Oglasnik sve da i žele strgati nešto u komponenti AmazonTool to nebi smjeli moći. Što znači da moraju biti blokirani da rade FILE_WRITE akciju po strukturi tih paralelnih komponenti.
Isto tako ne smiju raditi nikakav FILE_WRITE po Servis komponenti, pošto je ona u hijerahiji iznad. Dok komponenta Oglasnik smije raditi kakav želi file_write po komponenatama koje će biti uključene u njezinoj hijerarhijskoj grani ispod nje.
E sad, kako sam imao iskustva sa virusima koji ne samo da su se širili unutar jednog projekta…nego su skakali sa projekta na projekt unutar host računa…te to nisam uspio zaustaviti postavljanjem ftp permissiona. …sve se nekako bojim da se gornji task ne može rješiti na toj razini.
Iako bi to bilo idealno. …ali i u tom slučaju bi framework morao moći upravljati ftp permissionima, što nisam siguran da PHP može odrađivati?
Kako god, imam neki osjećaj da za gornju specifikaciju zadatka sam poprilično stjeran u kut i da se ne nudi previše opcija?
Padaju mi neke na pamet, ali zadržat ću ih zasad dok ne čujem koje su solucije sve u igri?
Pa eto, pucajte. Hvala.