اذهب إلى المحتوى

السؤال

نشر

 السلام عليكم عندي سؤال بخصوص controller  في نمط MVC 

هل الكنتروللر  هو السؤال عن التحقق ومعالجة البيانات مثل التنظيف التعقيم للبيانات الاتية من view  بعد ذالك تذهب الى model  .

او model هو ياخذ البيانات من الكنترولرر ويقوم بمعالجة البيانات والتحقق منها 

مثلا :

 

    private function validateTextInputs($bookName, $description, $language, $file_type)

    {

        if (empty($bookName)) {

            return ['hasInputEmpty' => 'يرجاء كتابة اسم الكتاب'];

        }

        if (empty($description)) {

            return ['hasInputEmpty' => 'يرجاءإدخال وصف الكتاب'];

        }

        if (empty($language)) {

            return ['hasInputEmpty' => 'يرجاء تحدد اللغة'];

        }

        if (empty($file_type)) {

            return ['hasInputEmpty' => 'يرجاء تحدد نوع الملف'];

        }

        return null;

    }

Recommended Posts

  • 0
نشر

السلام عليكم ورحمة الله،

ال Controller هنا يستقبل البيانات من View ويقوم بالتحقق الأساسي منها مثل التأكد من أن الحقول ليست فارغة أو الصيغة صحيحة وتنظيفها من خلال ال Sanitization ثم يمررها إلى Model الذي يتولى التحقق المنطقي الأعمق (Business Validation) مثل التأكد من عدم تكرار البيانات في قاعدة البيانات أو تطبيق قواعد العمل المعقدة.

وفي الكود خاصتك يمكنك ملاحظة أنّ دالة validateTextInputs تنتمي لل Controller لأنها تتحقق فقط من وجود البيانات (empty checks) وهو تحقق أساسي من الإدخال أما لو كان التحقق يتطلب معرفة بحالة النظام أو قواعد عمل معقدة مثل التحقق من وجود كتاب بنفس الاسم فهذا يكون في ال Model.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته.

إن الفكرة الأساسية في MVC تكمن في

Controller (المتحكم):

وهو الوسيط بين :

  • View (النموذج/Form)
  • Model (قاعدة البيانات + منطق العمل)

ووظيفته :

  • استقبال البيانات من ال View ($_POST, $_GET)
  • تنظيف البيانات البسيطة
  • التحقق من صحة الإدخال من ناحية الواجهة (Form Validation)
  • تمرير البيانات الصحيحة إلى النموذج Model
  • تحديد أي View يتم عرضه

Model (النموذج):

وهو المسؤول عن:

  • منطق العمل (Business Logic).
  • التعامل مع قاعدة البيانات.
  • التحقق من البيانات المرتبطة.
  • القواعد التي يجب ألا يتم كسرها حتى لو جاء الطلب من API .

View (العرض) :

ووظيفته هو عرض البيانات فقط لا تحقق و لا منطق و لا تعامل مع قواعد البيانات.

نأتي للإجابة على سؤالك . النموذج والمتحكم هم الإثنان مسؤولان عن التحقق من البيانات ولكن بطريقة مختلفة.

التحقق والتنظيف في Controller (التحقق السطحي) :

مثل :

  • هل الحقول فارغة.
  • هل تم إرسال الحقل.
  • هل الصيغة صحيحة مثل البريد الإلكتروني أو رقم.
  • تعقيم XSS (trim, htmlspecialchars).

أما التحقق في Model (التحقق العميق) :

مثل:

  • هل اسم الكتاب موجود مسبقا .
  • هل اللغة مسموح بها في النظام.
  • قواعد العمل (Business Rules).

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...