• بواسطة x32x01 ||
كيف يعمل MVC؟
عندما يقوم المستخدم بطلب صفحة معينة:
  • المتحكم (Controller) يتلقى الطلب.
  • المتحكم (Controller) يطلب البيانات من النموذج (Model) إذا كانت هناك حاجة.
  • النموذج (Model) يتفاعل مع قاعدة البيانات ويعيد البيانات إلى المتحكم (Controller).
  • المتحكم (Controller) يمرر البيانات إلى العرض (View).
  • العرض (View) يعرض البيانات للمستخدم.
مثال بسيط على MVC في PHP
لنقم بإنشاء تطبيق بسيط يعرض قائمة بالمستخدمين:

1. النموذج (Model)
PHP:
// model/UserModel.php
class UserModel {
    private $db;

    public function __construct($db) {
        $this->db = $db;
    }

    public function getUsers() {
        $stmt = $this->db->prepare("SELECT * FROM users");
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}

2. المتحكم (Controller)
PHP:
// controller/UserController.php
class UserController {
    private $userModel;

    public function __construct($userModel) {
        $this->userModel = $userModel;
    }

    public function index() {
        $users = $this->userModel->getUsers();
        require 'view/usersView.php';
    }
}

3. العرض (View)
PHP:
<!-- view/usersView.php -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Users List</title>
</head>
<body>
    <h1>Users List</h1>
    <ul>
        <?php foreach ($users as $user): ?>
            <li><?php echo htmlspecialchars($user['name']); ?></li>
        <?php endforeach; ?>
    </ul>
</body>
</html>

4. التجميع
PHP:
// index.php
require 'config/database.php';
require 'model/UserModel.php';
require 'controller/UserController.php';

$database = new Database();
$db = $database->getConnection();
$userModel = new UserModel($db);
$userController = new UserController($userModel);
$userController->index();

أهمية MVC
فصل منطق العمل (Business logic) عن العرض:
يساعد في تنظيم الكود وجعله أسهل في القراءة والصيانة.

إعادة الاستخدام:
يمكنك إعادة استخدام النموذج والعرض مع متحكمات مختلفة، مما يوفر الوقت والجهد.

سهولة الصيانة:
يساعد في العثور على الأخطاء وإصلاحها بسهولة أكبر.

العمل الجماعي:
يمكن للمصممين والمطورين العمل معًا على نفس المشروع دون التدخل في عمل بعضهم البعض.
 

المشاركات المتشابهة

  • x32x01
الردود
0
المشاهدات
8
الردود
0
المشاهدات
19
الردود
0
المشاهدات
10
الردود
0
المشاهدات
11
الردود
0
المشاهدات
9
الوسوم : الوسوم
mvc
عودة
أعلى