Skip to content

MVC Vzorec v XOOPS

XMF Zahtevano 4.0.x Native

Niste prepričani, ali je to pravi vzorec?

Glejte Izbira vzorca za dostop do podatkov za navodila o tem, kdaj uporabiti MVC v primerjavi s preprostejšimi vzorci.

:::pozor [Pojasnilo: XOOPS Arhitektura] Standard XOOPS 2.5.x uporablja vzorec Page Controller (imenovan tudi transakcijski skript), ne MVC. Podedovani moduli uporabljajo index.php z neposrednimi vključitvami, globalnimi objekti ($xoopsUser, $xoopsDB) in dostopom do podatkov na podlagi upravljavca.

Za uporabo MVC v XOOPS 2.5.x potrebujete XMF Framework, ki zagotavlja podporo za usmerjanje in krmilnik.

XOOPS 4.0 bo izvorno podpiral MVC z vmesno programsko opremo PSR-15 in pravilnim usmerjanjem.

Glej tudi: Trenutna XOOPS arhitektura :::

Vzorec Model-View-Controller (MVC) je temeljni arhitekturni vzorec za ločevanje zadev v modulih XOOPS. Ta vzorec razdeli aplikacijo na tri med seboj povezane komponente.

Model predstavlja podatke in poslovno logiko vaše aplikacije. To:

  • Upravlja obstojnost podatkov
  • Izvaja pravila poslovanja
  • Potrjuje podatke
  • Komunicira z bazo podatkov
  • Je neodvisen od uporabniškega vmesnika### Pogled Pogled je odgovoren za predstavitev podatkov uporabniku. To:
  • Upodablja HTML predlog
  • Prikaže podatke o modelu
  • Obvladuje predstavitev uporabniškega vmesnika
  • Pošilja dejanja uporabnika krmilniku
  • Vsebovati mora minimalno logiko

Krmilnik upravlja uporabniške interakcije in koordinate med modelom in pogledom. To:

  • Sprejema zahteve uporabnikov
  • Obdeluje vhodne podatke
  • Kliče metode modela
  • Izbere ustrezne poglede
  • Upravlja pretok aplikacij

V XOOPS je vzorec MVC implementiran z obdelovalniki in predlogami z motorjem Smarty, ki zagotavlja podporo za predloge.

<?php
class UserModel
{
private $db;
public function getUserById($id)
{
// Database query implementation
}
public function createUser($data)
{
// Create user implementation
}
}
?>
<?php
class UserController
{
private $model;
public function listAction()
{
$users = $this->model->getAllUsers();
return ['users' => $users];
}
}
?>
{foreach from=$users item=user}
<div>{$user.username|escape}</div>
{/foreach}
  • Ohranite poslovno logiko v modelih
  • Ohranite predstavitev v Pogledih
  • Hranite routing/coordination v krmilnikih
  • Ne mešajte skrbi med plastmi
  • Preverjanje vseh vnosov na ravni krmilnika

Glej tudi:


Oznake: #mvc #vzorci #arhitektura #razvoj modulov #vzorci-oblikovanje