Webprogramozás arr PHP info Kérlek segítsetek! PHP!
(#11) Jedimaster válasza erre: (#10) anti 2014.01.11. 17:24

Jedimaster
Jedimaster
Kezdő

Köszi a segítséget, végül egy, az MVC rendszerszemléletre hajazó megoldást találtam.
Igaz, így több fájlt kaptam, de azok lényegesen egyszerűbbek és rövidebbek, ezáltal könnyebben átláthatók lettek. :)

Eredetileg az okozta a hibát, hogy egyetlen MySQL osztállyal akartam az egész fórum minden DB műveletét megcsináltatni, az általánosság jegyében. Végül ez zavart be...

A megoldásom lényege, hogy van az index.php nevű oldal, ami meghív egy includeIndex.php oldalt. Ez tartalmazza az indexView, az indexController és az indexModel nevű PHP fájlhívást. Az azonos nevű osztály(IndexView) példányosítását és a form -ot kiírató metódus hívását maga az index.php tartalmazza. A form -on bevitt adatokat a nézetfájl átadja az indexController nevű fájlnak, ami az indexModel fájl azonos nevű osztályát meghívva, elvégzi a szükséges DB műveletet, majd visszatérési értékét visszaadja az indexControllernek, az pedig az indexView.php -nek, amit az index.php oldalon hívtunk meg...
A későbbiekre nézve jelentős könnyítést jelent ez, mivel egyetlen osztály mindig csak kevés műveletet végez el, ezzel csökkentve az erőforrásigényt és könnyebbé téve a leszármaztatást - tehát kevesebb kódot kell újra megírni, ami csökkenti a hibázás lehetőségét -.
Innen nézve felesleges bonyodalomnak tűnik, de a weboldalon több DIV is található, amik mind osztályokkal dolgoznak. Ahelyett, hogy egy oldalon egyetlen osztályt példányosítanék és vele végeztetnék el mindent, inkább puzzle-ként építem fel az oldalamat...
Sok mindenkinek egyértelmű lehet ez a szemléletmód, de -mint már mondtam- még kezdő vagyok, főleg OOP PHP területén...:)

Ez a fórum igazából egy összetettebb oldal modulja lesz(egy ERP rendszer egy fő moduljának része, amit egyszer már lefejlesztettem, akkor még procedurális szemléletben).
Ha elkészülök vele, dokumentálom és közzéteszem, hátha segítek ezzel másoknak...:)

Még egyszer köszi a segítségedet, Anti!
A te ötleted vezetett oda, hogy felismerjem, hogy a SELECT eredményét ne egy általános, minden más lekérdezésnél is használt metódussal adjam vissza, hanem írjak egy olyan, specifikus osztályt, ami megfelel a célomnak.