Lewati ke konten

Pola MVC di XOOPS

XMF Diperlukan 4.0.x Asli

Klarifikasi: Arsitektur XOOPS

Standar XOOPS 2.5.x menggunakan pola Pengontrol Halaman (juga disebut Skrip Transaksi), bukan MVC. module lama menggunakan index.php dengan penyertaan langsung, objek global ($xoopsUser, $xoopsDB), dan akses data berbasis handler.

Untuk menggunakan MVC di XOOPS 2.5.x, Anda memerlukan Kerangka XMF yang menyediakan dukungan perutean dan pengontrol.

XOOPS 4.0 secara asli akan mendukung MVC dengan middleware PSR-15 dan perutean yang tepat.

Lihat juga: Arsitektur XOOPS Saat Ini

Pola Model-View-Controller (MVC) adalah pola arsitektur mendasar untuk memisahkan masalah dalam module XOOPS. Pola ini membagi aplikasi menjadi tiga komponen yang saling berhubungan.

Model mewakili data dan logika bisnis aplikasi Anda. Itu:

  • Mengelola persistensi data
  • Menerapkan aturan bisnis
  • Memvalidasi data
  • Berkomunikasi dengan database
  • Apakah independen dari UI

Tampilan bertanggung jawab untuk menyajikan data kepada pengguna. Itu:

  • Merender template HTML
  • Menampilkan data model
  • Menangani presentasi antarmuka pengguna
  • Mengirim tindakan pengguna ke pengontrol
  • Harus mengandung logika minimal

Pengontrol menangani interaksi pengguna dan koordinat antara Model dan Tampilan. Itu:

  • Menerima permintaan pengguna
  • Memproses data masukan
  • Memanggil metode model
  • Memilih tampilan yang sesuai
  • Mengelola aliran aplikasi

Di XOOPS, pola MVC diimplementasikan menggunakan handler dan template dengan mesin Smarty yang menyediakan dukungan template.

<?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}
  • Simpan logika bisnis di Model
  • Simpan presentasi dalam Tampilan
  • Simpan routing/coordination di Pengendali
  • Jangan mencampuradukkan kekhawatiran antar lapisan
  • Validasi semua input di level Pengendali

Lihat juga:


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