Modul v. plugin kezelés megvalósítása PHP projektben (?)
- 1390 megtekintés
Hozzászólások
Üdv!
Arra lennék kívánicsi, hogy ki milyen módon oldaná/oldja/oldotta meg a címben szereplő dolgot?
Én még valamikor tavaly próbáltam hasonlót, de az nagyon nem jó elgondolás volt.
Akkor egy könyvtárba pakoltam minden 'modult'.
Ezek két fájlból álltak, az egyikben osztálydefiníció, a másikban a 'vezérlés'.
Minden oldaltöltéskor végigszaladtam a könyvtáron, és beinklúdolotam a fájlokat.
Mi lenne a szép megoldás?
Hogyan lenne célszerű egy (nagyobbacska) projektet felépíteni?
Ezzel a témával kapcsolatos linket is megköszönnék.
Előre is köszi minden hozzászólást.
- A hozzászóláshoz be kell jelentkezni
Elfelejtetted megemlíteni, milyen php verzió. Pl ez egy megoldás:
http://cvs.sourceforge.net/viewcvs.py/yacm/yacm/functions.php?rev=1.5&view=markup
PHP5, __autoload fv, és csak bizonyos nevűeket töltesz be (aztán hogy az a fájl mit, az már egyedi magánügy). Szóval az osztálynév és az azt tartalmazó fájl elérési útja lényegében azonos, így nem kell include-olni semmit sem. Pluginek is egyszerűen megvannak: csak az új plugin neve érdekes, utána már megy minden magától :)
- A hozzászóláshoz be kell jelentkezni
[quote:90ce5c72cf="Panther"]Elfelejtetted megemlíteni, milyen php verzió.
:oops: Tényleg, és ráadásul PHP4 :oops:
Természetesen köszi!
- A hozzászóláshoz be kell jelentkezni
Szerintem nagyon altalanos a kerdesed. Igy csak hasonlo valaszt fogsz kapni. Ki kell alakitanod valamilyen elnevezesi konvenciot, anmi alapjan megtalalod a fajlokat.
Bar szvsz ez php alapmukodesehez tartozik, igy ezt nem neveznem modulkezelesnek.
Egyaltalan mit hivunk pluginnak? Plane modulnak?
Mondjuk akkor modularis egy honlap,(program) felepitese, ha a funkcionalitast megvalosito programreszek (amik egy jol megfogalmazhato feladatert felelnek, tobb fajlban helyezkednek el, tobb osztalybol fuggvenybol allnak) csak lazan, vagy egyaltalan nem kapcsolodnak egymashoz. Rendelkeznek konfig lehetoseggel, valamilyen interfaceszel amin keresztul a honlap es a modul kapcsolata kialakithato, testreszabhato.
A pluginnak talan ennel egyszerobb programreszeket hivnam, jellemzoen egy fajlban egy osztaly vagy fuggveny. Peldakent a Smarty, meg Pear:QuickForm plugin rendszerre jut eszembe.
Ezeket szerintem mindenkepp erdemes lenne tanulmanyoznod.
(persze biztos van meg sok jo pelda is)
- A hozzászóláshoz be kell jelentkezni
amugy en is modulnak hivom.
az alapprograma framwork nalam.
cca igy nez ki (minimum mert tobb ilyet csinaltam mar) egy ilyen cucc:
/module
/config
/function
/download
/themes
index.php
szal nalam is a module-ban van
- A hozzászóláshoz be kell jelentkezni
[quote:c7d22b7465="Medvesajt"]Én a magam részéről kialakítottam egy kódolási stílust, illetve inkább áttértem a programtervezési mintákra. Szerintem erre lesz szükséged.
Köszönöm!
Igen, biztos hogy ez fog kelleni, és a kód is hasznos lesz. Pont mostanában kezdtem el nézelődni a téma után (konkrétan az MVC), ezért pláne hasznos. Jelenleg a cégnél már majdnem optimálisan dolgozunk: a grafikus elkészíti a layout-ot, a 'html huszár' elkészíti belőle a template-eket, én pedig a php kódokat. Van egy saját template rendszerünk (ezt én követtem el, de még elég alap: template változó kezelés, automatikus include-olás, BBCode kezelés, most készül hozzá a feltételes elágazás és a ciklus kezelés, stb...), ezt a 'html huszár' is tudja használni. Csináltam az irodába egy szervert, amin Subversion dolgozik. Igazából a tervezés az, ami hiányzik.
Próbálunk a meló mellett tanulni és lépést tartani, de sajnos ez legtöbbször azzal jár, hogy egy kidolgozatlan rendszerű fejlesztésbe kezdünk egy munkával, majd a következőnél már megint valami új dologba kezdünk, és ezeken később (pl 1-2 év) elég kemény módosítani.
Egyébként a cég szerverén PHP4 fut, és nem biztos hogy egyszerű lenne az átállás (a regi weblapok miatt), de majd kiderül.
A PHP fejlesztés felsőfokon megvan, és (bár még sajnos nem volt időm vele elég időt foglalkozni) szerintem az egyik legjobb könyv, amit vet(et)tem.
Megvetetem a főnökkel a Programtervezési minták-at is :)
(a szakirodalomra szerencsére nem sajnálja a pénzt...)
- A hozzászóláshoz be kell jelentkezni
Én a magam részéről kialakítottam egy kódolási stílust, illetve inkább áttértem a programtervezési mintákra. Szerintem erre lesz szükséged.
Nagyon jól tetted, hogy külön vetted a vezérlést, kérdés, hogy mennyire tudod még felbontani a feladatokat. Én az MVC minta szerint programozom, ami annyit jelent, hogy M[modell-logika] V[view-nézet] C[controller-vezérlő] feladatok 1-1 osztályban vannak elhelyezve. A fő osztály a vezérlő, mikor kattintanak egy linkre, ez az ami beindul (C-s programoknál hívjuk ezt a Main()-nak).
Megkapja a szükséges paramétereket,beincludolja a Modell osztályt méghozzá ugyanazona file néven, csak kiegészítve logic_ előtaggal és a a logic könyvtárból.Llekéri a Modlell osztálytól a dinamikus adatokat, majd ezt átadja a nézetosztálynak, amit a view könyvtárban található main_website fájl tartalmaz. ha wapos megjenítást akarok, akkor a main_wapsite jön. Ez az rakja össze azt a forráskódot, amit aztán a vezérlő elküld a böngészőnek (print).
A nézet osztály tartalmazza a statikus forráskódot, ebbe kell beillesztenie a dinamikus tartalmat. Ki smartyval teszi, ki nem (én nem).
Ennél fogva van a logikai könyvtár, van a nézet könyvtár és opcionálisan mondjuk képek könyvtár (nekem van adatbázis is).
Szerintem aki nagyobb projekten dolgozik, annak mindenképpen érdemes belemerülnie az objektumorinetált programozás mélyebb bugyraiba, utánanézni a programtervezési mintáknak, legfőképpen az MVC mintának. Keress rá az MVC pattern-re, vagy pl a Singleton pattern-re.
Viszont ahhoz, hogy tényleg hatékony programot írj, ahhoz mindenkpépen a php5-ösre van szükséged.
Az alábbi linken megnézhetsz egy alap forráskódot (mást ne nagyon keress az oldalon, mert nem megy más), talán jó kiindulás lesz a tervezgetéshez. Ha könyvben érdekelne a dolog: Programtervezési minták (asszem ez a címe, libriben kapható, majd 6ezres), illetve a PHP fejlesztés felsőfokon (ez majd 8ezres). Talán még a PHP5 24 óra alatt, de az szerintem nem annyira jó, nagyon megbonyolítja a példát (ez is majd 6ezres)[/url]
- A hozzászóláshoz be kell jelentkezni