x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
كيف يعمل MVC؟
عندما يقوم المستخدم بطلب صفحة معينة:
لنقم بإنشاء تطبيق بسيط يعرض قائمة بالمستخدمين:
1. النموذج (Model)
2. المتحكم (Controller)
3. العرض (View)
4. التجميع
أهمية MVC
فصل منطق العمل (Business logic) عن العرض:
يساعد في تنظيم الكود وجعله أسهل في القراءة والصيانة.
إعادة الاستخدام:
يمكنك إعادة استخدام النموذج والعرض مع متحكمات مختلفة، مما يوفر الوقت والجهد.
سهولة الصيانة:
يساعد في العثور على الأخطاء وإصلاحها بسهولة أكبر.
العمل الجماعي:
يمكن للمصممين والمطورين العمل معًا على نفس المشروع دون التدخل في عمل بعضهم البعض.
عندما يقوم المستخدم بطلب صفحة معينة:
- المتحكم (Controller) يتلقى الطلب.
- المتحكم (Controller) يطلب البيانات من النموذج (Model) إذا كانت هناك حاجة.
- النموذج (Model) يتفاعل مع قاعدة البيانات ويعيد البيانات إلى المتحكم (Controller).
- المتحكم (Controller) يمرر البيانات إلى العرض (View).
- العرض (View) يعرض البيانات للمستخدم.
لنقم بإنشاء تطبيق بسيط يعرض قائمة بالمستخدمين:
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) عن العرض:
يساعد في تنظيم الكود وجعله أسهل في القراءة والصيانة.
إعادة الاستخدام:
يمكنك إعادة استخدام النموذج والعرض مع متحكمات مختلفة، مما يوفر الوقت والجهد.
سهولة الصيانة:
يساعد في العثور على الأخطاء وإصلاحها بسهولة أكبر.
العمل الجماعي:
يمكن للمصممين والمطورين العمل معًا على نفس المشروع دون التدخل في عمل بعضهم البعض.