Перейти до вмісту

MVC Шаблон у XOOPS

Потрібен XMF 4.0.x Native

:::обережно[Уточнення: архітектура XOOPS] Стандарт XOOPS 2.5.x використовує шаблон Контролер сторінки (також званий сценарієм транзакцій), а не MVC. Застарілі модулі використовують index.php із прямим включенням, глобальними об’єктами ($xoopsUser, $xoopsDB) і доступом до даних на основі обробника.

Щоб використовувати MVC у XOOPS 2.5.x, вам потрібна XMF Framework, яка забезпечує підтримку маршрутизації та контролера.

XOOPS 4.0 спочатку підтримуватиме MVC із проміжним програмним забезпеченням PSR-15 і правильною маршрутизацією.

Дивіться також: Поточна архітектура XOOPS :::

Патерн Model-View-Controller (MVC) є фундаментальним архітектурним шаблоном для розділення проблем у модулях XOOPS. Цей шаблон розділяє програму на три взаємопов’язані компоненти.

Модель представляє дані та бізнес-логіку вашої програми. Це:

  • Керує збереженням даних
  • Впроваджує правила ведення бізнесу
  • Перевіряє дані
  • Зв’язується з базою даних
  • Не залежить від інтерфейсу користувача

View відповідає за представлення даних користувачеві. Це: — Відтворює шаблони HTML

  • Відображення даних моделі
  • Обробляє презентацію інтерфейсу користувача
  • Надсилає дії користувача на контролер
  • Має містити мінімум логіки

Контролер керує взаємодією користувача та координатами між моделлю та видом. Це:

  • Приймає запити користувачів
  • Обробляє вхідні дані
  • Виклики методів моделі
  • Вибирає відповідні перегляди
  • Керує потоком додатків

У XOOPS шаблон MVC реалізовано за допомогою обробників і шаблонів із механізмом Smarty, що забезпечує підтримку шаблонів.

Базова структура моделі

Section titled “Базова структура моделі”
<?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}
  • Зберігайте бізнес-логіку в моделях
  • Зберігайте презентацію у Views
  • Зберігайте routing/coordination у контролерах
  • Не змішуйте проблеми між шарами
  • Перевірка всіх введених даних на рівні контролера

Пов’язана документація

Section titled “Пов’язана документація”

Дивіться також:


Теги: #mvc #паттерни #архітектура #модульна розробка #шаблони проектування