PDA

View Full Version : Razvoj modula


nitko
02-01-2008, 18:00
Pišem CMS, i sada sam si zamislio u glavi to tako da odvojim sve na jezgru i module.

Jezgra bi samo se brinula za višejezičnost, template i dodavanje modula.

Moduli bi bili ostatak, znači CMS bez iti jednog modula bi bio "ćelav" :)

Razmišljao sam kako bi to izveo. Recimo da je jedan modul "novosti".
On bi kao naknadno instaliran (dodan) modul trebao imati pristupa svemu šta je njemu potrebno, te bi se trebao moći implentirati u bilo koji dio koda da bi mogao imati potpunu kontrolu.

Sada sam razmišljao, kako to izvesti..

Na pamet mi je jedino bila pala ideja, da pokrenem funkciju npr checkModules() u svakom file-u koja bi provjeravala pomoću baze zahtjeva li neki modul inkludanje u tu određenu datoteku, te ukoliko treba, da se taj modul inkluda.

Zanima me, ako je neko radio već nešto slično, iskustva ? Drukčiji način ? Da se ne zeznem u startu odma.

Gosarić
02-01-2008, 18:09
Sad dok si bolje pojasnio skužio sam da će to ići teže. Izbjegni to u svakom slučaju. A neko rješenje je sljedeće:

imas funkciju provjeri('ime-filea', 'pozicija'); i podijeliš stranicu na npr. gore lijevo - 1, sredina lijevo - 2, dolje lijevo - 3, sredina gore - 4 itd. i na taj način provjeravaš jel ima kakav nadodan modul i očitavaš ga is file-a u koji prethodno napraviš tak da pejstas php kod u editor i spremis kao stranicu. Mislim da je tak nekaj složeno na textpatternu.

nitko
02-01-2008, 22:56
Što misliš pod gore, dolje, lijevo i desno ? Nisam li spomenuo template-e ? :)

Gosarić
02-01-2008, 23:58
svejedno.

[1][2][3]
[4][5][6]

tak bi bila podjela stranice i pri svakom broju bi pitao bazu jel ima tu kakav modul za učitati.

nitko
03-01-2008, 16:15
Hmm, nažalost ne mogu tako jer jezgra nije tako složena :)

Stvar je u tome što moduli se trebaju malo bolje ponašati od toga (trenutno ne spominjem dizajn kao glavni problem) nego samu integraciju modula u jezgru.

Ugl, odlučio sam pozivati funkciju koja će provjeravati treba li se neki modul inkludati i to je to.

Inače fala, ak zapnem negdje u vezi izrade ovoga, javim ovdje. :)

franzi
03-01-2008, 17:58
Trenutno je popularna MVC (Model-View-Controller) dizajnerska paradigma, koja je zaista dobra. Temelji se na objektno orijentiranom programiranju i na odvajanju modela (modula, dijelova koji komuniciraju sa bazom podataka i čije metode kao rezultat, pojednostavljeno, daju recordset iz baze podataka), kontrolera (koji se brine, opet pojednostavljeno, za komunikaciju između usera i modula) i viewa (koji servira prikaz sadržaja).

Većina frameworka ti je pisana na taj način (Symfony, CodeIgniter i ostali za PHP, Django za Phyton, Ruby on Rails za Ruby...).

Kad koristiš takav dizajn sustava, samo kontroler isprogramiraš tako da prepoznaje nove modele, koji su, pak, jedna klasa u zasebnom fajlu i svakom modelu je pridružen (pod)kontroler.

http://en.wikipedia.org/wiki/Model-view-controller

nitko
03-01-2008, 18:29
eee :D to sam tražio :D puno fala, rep+