رفتن به محتوا

الگوی MVC در XOOPS

XMF مورد نیاز 4.0.x بومی

:::احتیاط[توضیح: معماری XOOPS] Standard XOOPS 2.5.x از الگوی Page Controller (که اسکریپت تراکنش نیز نامیده می شود) استفاده می کند، نه MVC. ماژول های قدیمی از index.php با شامل مستقیم، اشیاء سراسری ($xoopsUser، $xoopsDB) و دسترسی به داده مبتنی بر کنترلر استفاده می کنند.

برای استفاده از MVC در XOOPS 2.5.x، به XMF Framework نیاز دارید که از مسیریابی و کنترلر پشتیبانی می کند.

XOOPS 4.0 به صورت بومی از MVC با میان افزار PSR-15 و مسیریابی مناسب پشتیبانی می کند.

همچنین ببینید: معماری کنونی XOOPS :::

الگوی Model-View-Controller (MVC) یک الگوی معماری اساسی برای جداسازی نگرانی ها در ماژول های XOOPS است. این الگو یک برنامه کاربردی را به سه جزء به هم پیوسته تقسیم می کند.

مدل داده ها و منطق تجاری برنامه شما را نشان می دهد. آن:

  • ماندگاری داده ها را مدیریت می کند
  • قوانین تجاری را اجرا می کند
  • داده ها را تایید می کند
  • با پایگاه داده ارتباط برقرار می کند
  • مستقل از UI است

View مسئول ارائه داده ها به کاربر است. آن:

  • قالب های HTML را رندر می کند
  • نمایش داده های مدل
  • ارائه رابط کاربری را مدیریت می کند
  • اقدامات کاربر را به کنترلر ارسال می کند
  • باید حاوی حداقل منطق باشد

کنترل کننده تعاملات و مختصات کاربر بین Model و View را کنترل می کند. آن:

  • درخواست های کاربران را دریافت می کند
  • داده های ورودی را پردازش می کند
  • فراخوانی روش های مدل
  • نماهای مناسب را انتخاب می کند
  • جریان برنامه را مدیریت می کند

در XOOPS، الگوی MVC با استفاده از هندلرها و قالب ها با موتور Smarty که از قالب پشتیبانی می کند، پیاده سازی می شود.

<?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 را در کنترلرها نگه دارید
  • نگرانی ها را بین لایه ها مخلوط نکنید
  • تمام ورودی ها را در سطح Controller اعتبار سنجی کنید

همچنین ببینید:


برچسب ها: #mvc #الگوها #معماری #ماژول-توسعه #طراحی-الگوها