Gå til indhold

MVC mønster i XOOPS

XMF Påkrævet 4.0.x Native

Afklaring: XOOPS arkitektur

Standard XOOPS 2.5.x bruger et Page Controller-mønster (også kaldet Transaction Script), ikke MVC. Ældre moduler bruger index.php med direkte inkluderer, globale objekter ($xoopsUser, $xoopsDB) og handler-baseret dataadgang.

For at bruge MVC i XOOPS 2.5.x, har du brug for XMF Framework, som giver routing og controllerunderstøttelse.

XOOPS 4.0 vil indbygget understøtte MVC med PSR-15 middleware og korrekt routing.

Se også: Nuværende XOOPS-arkitektur

Model-View-Controller-mønsteret (MVC) er et grundlæggende arkitektonisk mønster til at adskille bekymringer i XOOPS-moduler. Dette mønster opdeler en applikation i tre indbyrdes forbundne komponenter.

Modellen repræsenterer dataene og forretningslogikken i din applikation. Det:

  • Styrer datapersistens
  • Implementerer forretningsregler
  • Validerer data
  • Kommunikerer med databasen
  • Er uafhængig af brugergrænsefladen

Visningen er ansvarlig for at præsentere data for brugeren. Det:

  • Gengiver HTML skabeloner
  • Viser modeldata
  • Håndterer brugergrænsefladepræsentation
  • Sender brugerhandlinger til controlleren
  • Bør indeholde minimal logik

Controlleren håndterer brugerinteraktioner og koordinerer mellem Model og View. Det:

  • Modtager brugeranmodninger
  • Behandler inputdata
  • Kalder modelmetoder
  • Vælger passende visninger
  • Styrer applikationsflow

I XOOPS er MVC-mønsteret implementeret ved hjælp af handlere og skabeloner med Smarty-motoren, der giver skabelonunderstøttelse.

<?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}
  • Bevar forretningslogikken i modeller
  • Hold præsentationen i Views
  • Hold routing/koordinering i Controllere
  • Bland ikke bekymringer mellem lag
  • Valider alle input på controllerniveau

Se også:


Tags: #mvc #mønstre #arkitektur #modul-udvikling #design-mønstre