MVC

النهاردة هنجاوبكم على سؤال مشهور في الـ Interviews عن الـ MVC (Model , View , Controller) واللي معظم اللي شغالين Coding سمعوا عنه أو شغالين بيه أصلًا!


فـ خلينا نتكلم عنه من نظر الـ Backend واللي مش هيختلف كتير عن باقي المجالات.


--» طيب يعني إيه MVC وإيه لازمته؟!🤔


فى البداية الـ MVC ممكن نعتبرها طريقة بتنظملك كتابة الكود بحيث تنظم الـ Structure بتاع الـ App اللي بتبنيه 🏠


مثلًا: بدل ما تكتب الكود كله ورا بعضه اللي بيعملك Function معينة ممكن تقسم الكود لكذا Function بحيث كل واحدة منهم تعمل Single Job (من Solid Principle ) أو تستخدم الـ OOP بحيث تنظم الدنيا شوية.. ويكون الكود بتاعك Clean.


»» خلونا نمسك كل حرف من الكلمة ونفهم بيعبّر عن إيه 🏃


(١) أول حرف الـ (M) وهو اختصار لـ Model :


بص احنا دلوقت بنبني App صح !؟


طيب الـ Data بتاعت الـ App دي هتتخزن فين ؟!


أكيد فى Database مثلا.. طيب هو إيه أصلا الـ Database؟!


هقولك ما هى إلا شوية جداول ممكن يكون بينهم Relations زي مثلاً عندنا جدول Users و UserPhones .. كل جدول منهم هنعتبره Model يقدر يخلينا نوصل للـ User والتاني لـ أرقامهم.


فـ الخلاصة :


أن الـ Model بيخليك تتعامل مع الجداول بتاعت الـ Data Base. مثلا لو جيت وقولت:


USER::create([‘name’ => ‘CIS’])


هيروح يعمل User جديد ويخزن اسمه فى جدول الـ Users .. ( دا كود php بالمناسبة "لارفال" )


(٢) تانى حرف هو الـ ( V ) وهو اختصار لـ View :


الـ View هو الحاجات اللي بتظهرلك أنت كـ User لما تفتح الموقع (ممكن نعتبره ال Front End ) .. مثلاً أنت بتقرأ البوست ده الوقتي .. اللي أنت شايفه دا هو الـ View والـ Data اللي فيع عشان يجبهولك استخدموا Model بتاع الـ UserPosts اللي متخزن فيه البوست (وعرضوه فى الـ SinglePostView )


(٣) تالت حرف الـ (C ) وهو اختصار لـ Controller :


ممكن نعتبر الـ Controller هو الوسيط اللي بيربط الدنيا ببعضها، تعالوا ناخد مثال وليكن مثلا لما تدخل ع لينك الجروب ده:


https://www.facebook.com/groups/438663260306486/?ref=share


لو بصيت هتلاقي لينك فيسبوك ثم كلمة Groups ثم 438663260306486


( بالمناسبة اللينك دا بنسميه Route أو End point .. أى لينك عموماً مش دا بس)


المهم لما تدخل على اللينك هيروح على صندوق كدا (هنسميه Magic Box ) بيتأكد أن:


- اللينك صح.


- وإن مسموحلك تدخل عليه.


بعدين يروح يجيب الجروب صاحب الـ ID ده بأعضائه، وبعدين ياخد الـ Data دى كلها ( من الـ Model ) ويحطها فى View معين كدا عشان تشوف الجروب.


»» الـ Magic box دا هو الـ Controller.


ربنا يوفقكم وتتقبلوا في الـ Interviews 🙏


 

author

CIS Team

CIS Team MU

Leave Comment

wave
Please provide a valid Comment.

Press ESC to close