Přeskočit na obsah

Vzor MVC v XOOPS

Vyžadováno XMF 4.0.x Nativní

:::poznámka[Nejste si jisti, zda je to správný vzor?] Pokyny k použití MVC a jednodušších vzorů naleznete v části Výběr vzoru přístupu k datům. :::

:::upozornění[Upřesnění: Architektura XOOPS] Standardní XOOPS 2.5.x používá vzor Page Controller (také nazývaný Transaction Script), nikoli MVC. Starší moduly používají index.php s přímým zahrnutím, globálními objekty ($xoopsUser, $xoopsDB) a přístupem k datům na základě obsluhy.

Chcete-li použít MVC v XOOPS 2.5.x, potřebujete XMF Framework, který poskytuje podporu směrování a řadiče.

XOOPS 4.0 bude nativně podporovat MVC s middlewarem PSR-15 a správným směrováním.

Viz také: Aktuální architektura XOOPS :::

Vzor Model-View-Controller (MVC) je základním architektonickým vzorem pro oddělení zájmů v modulech XOOPS. Tento vzor rozděluje aplikaci na tři vzájemně propojené komponenty.

Model představuje data a obchodní logiku vaší aplikace. to:

  • Spravuje perzistenci dat
  • Implementuje obchodní pravidla
  • Ověřuje data
  • Komunikuje s databází
  • Je nezávislý na uživatelském rozhraní

View odpovídá za prezentaci dat uživateli. to:

  • Vykresluje šablony HTML
  • Zobrazuje data modelu
  • Zvládá prezentaci uživatelského rozhraní
  • Odesílá uživatelské akce do ovladače
  • Měl by obsahovat minimální logiku

Ovladač zpracovává uživatelské interakce a souřadnice mezi modelem a pohledem. to:

  • Přijímá požadavky uživatelů
  • Zpracovává vstupní data
  • Volání metod modelu
  • Vybírá vhodné pohledy
  • Řídí tok aplikací

V XOOPS je vzor MVC implementován pomocí ovladačů a šablon s enginem Smarty poskytujícím podporu šablon.

Základní struktura modelu

Sekce “Základní struktura modelu”
<?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}
  • Udržujte obchodní logiku v Modelech
  • Udržujte prezentaci v zobrazeních
  • Ponechejte routing/coordination v ovladačích
  • Nemíchejte obavy mezi vrstvami
  • Ověřte všechny vstupy na úrovni ovladače

Související dokumentace

Sekce “Související dokumentace”

Viz také:


Tagy: #mvc #patterns #architecture #module-development #design-patterns