Skip to content

MVC Corak dalam XOOPS

XMF Diperlukan 4.0.x Native

Tidak pasti sama ada ini corak yang betul?

Lihat Memilih Corak Akses Data untuk mendapatkan panduan tentang masa untuk menggunakan MVC vs corak yang lebih ringkas.

Penjelasan: XOOPS Seni Bina

Standard XOOPS 2.5.x menggunakan corak Pengawal Halaman (juga dipanggil Skrip Transaksi), bukan MVC. Modul warisan menggunakan index.php dengan termasuk langsung, objek global ($xoopsUser, $xoopsDB), dan akses data berasaskan pengendali.

Untuk menggunakan MVC dalam XOOPS 2.5.x, anda memerlukan XMF Framework yang menyediakan sokongan penghalaan dan pengawal.

XOOPS 4.0 akan menyokong MVC secara asli dengan PSR-15 perisian tengah dan penghalaan yang betul.

Lihat juga: Seni Bina XOOPS Semasa

Corak Model-View-Controller (MVC) ialah corak seni bina asas untuk memisahkan kebimbangan dalam modul XOOPS. Corak ini membahagikan aplikasi kepada tiga komponen yang saling berkaitan.

Model mewakili data dan logik perniagaan aplikasi anda. Ia:

  • Menguruskan kegigihan data
  • Melaksanakan peraturan perniagaan
  • Mengesahkan data
  • Berkomunikasi dengan pangkalan data
  • Bebas daripada UI### Lihat View bertanggungjawab untuk membentangkan data kepada pengguna. Ia:
  • Memaparkan HTML templat
  • Memaparkan data model
  • Mengendalikan persembahan antara muka pengguna
  • Menghantar tindakan pengguna kepada pengawal
  • Harus mengandungi logik yang minimum

Pengawal mengendalikan interaksi dan koordinat pengguna antara Model dan Paparan. Ia:

  • Menerima permintaan pengguna
  • Memproses data input
  • Kaedah model panggilan
  • Memilih pandangan yang sesuai
  • Menguruskan aliran aplikasi

Dalam XOOPS, corak MVC dilaksanakan menggunakan pengendali dan templat dengan enjin Smarty menyediakan sokongan templat.

<?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 logik perniagaan dalam Model
  • Simpan persembahan dalam Views
  • Simpan routing/coordination dalam Pengawal
  • Jangan campurkan kebimbangan antara lapisan
  • Sahkan semua input di peringkat Pengawal

Lihat juga:


Tag: #mvc #corak #senibina #pembangunanmodul #corak-reka bentuk