MVC minta XOOPS-ban
XMF szükséges 4.0.x natív
:::megjegyzés[Nem biztos benne, hogy ez a megfelelő minta?] Tekintse meg az Adat-hozzáférési minta kiválasztása című részt, hogy útmutatást kapjon a MVC használatáról az egyszerűbb mintákhoz képest. :::
:::vigyázat [Tisztázat: XOOPS Architecture]
A szabványos XOOPS 2.5.x Page Controller mintát használ (más néven Tranzakciós szkriptet), nem pedig MVC-t. A régebbi modulok index.php-t használnak közvetlen belefoglalással, globális objektumokkal ($xoopsUser, $xoopsDB) és kezelő alapú adathozzáféréssel.
A MVC XOOPS 2.5.x verzióban való használatához szükség van a XMF Framework-ra, amely biztosítja az útválasztást és a vezérlők támogatását.
XOOPS 4.0 natívan támogatja a MVC PSR-15 köztes szoftverrel és a megfelelő útválasztással.
Lásd még: Jelenlegi XOOPS architektúra :::
A Model-View-Controller (MVC) minta egy alapvető építészeti minta a XOOPS modulok problémáinak szétválasztására. Ez a minta három, egymással összefüggő összetevőre osztja az alkalmazást.
MVC Magyarázat
Szekció neve “MVC Magyarázat”Modell
Szekció neve “Modell”A Modell az alkalmazás adatait és üzleti logikáját képviseli. Ez:
- Kezeli az adatok fennmaradását
- Az üzletszabályzatot végrehajtja
- Érvényesíti az adatokat
- Kommunikál az adatbázissal
- Független a felhasználói felülettől
Megtekintés
Szekció neve “Megtekintés”A Nézet felelős az adatoknak a felhasználó számára történő megjelenítéséért. Ez:
- HTML sablonokat jelenít meg
- Modelladatokat jelenít meg
- Kezeli a felhasználói felület bemutatását
- Felhasználói műveleteket küld a vezérlőnek
- Minimális logikát kell tartalmaznia
Vezérlő
Szekció neve “Vezérlő”A Controller kezeli a felhasználói interakciókat, és koordinálja a modell és a nézet között. Ez:
- Fogadja a felhasználói kéréseket
- Feldolgozza a bemeneti adatokat
- Modellmetódusokat hív meg
- Kiválasztja a megfelelő nézeteket
- Kezeli az alkalmazás áramlását
XOOPS Megvalósítás
Szekció neve “XOOPS Megvalósítás”A XOOPS-ban a MVC mintát kezelők és sablonok segítségével valósítják meg a Smarty motorral, amely sablontámogatást biztosít.
Alapvető modellstruktúra
Szekció neve “Alapvető modellstruktúra”<?phpclass UserModel{ private $db;
public function getUserById($id) { // Database query implementation }
public function createUser($data) { // Create user implementation }}?>Vezérlő megvalósítása
Szekció neve “Vezérlő megvalósítása”<?phpclass UserController{ private $model;
public function listAction() { $users = $this->model->getAllUsers(); return ['users' => $users]; }}?>Sablon megtekintése
Szekció neve “Sablon megtekintése”{foreach from=$users item=user} <div>{$user.username|escape}</div>{/foreach}Bevált gyakorlatok
Szekció neve “Bevált gyakorlatok”- Tartsa meg az üzleti logikát a Modellekben
- Tartsa a prezentációt a Views alkalmazásban
- Tartsa a routing/coordination-t a vezérlőkben
- Ne keverje az aggodalmakat a rétegek között
- Érvényesítse az összes bemenetet a vezérlő szintjén
Kapcsolódó dokumentáció
Szekció neve “Kapcsolódó dokumentáció”Lásd még:
- Repository-Pattern a speciális adathozzáféréshez
- Szolgáltatási réteg az üzleti logikai absztrakcióhoz
- Code-Organization a projekt szerkezetéhez
- Tesztelés a MVC tesztelési stratégiákhoz
Címkék: #mvc #minták #architektúra #modul-fejlesztés #design-minták