فائدة constructor في اللارافيل

السلام عليكم

قد يبدو السؤال تافها ، لكنني ما زلت مبتدئة بالبرمجة في اللارافيل

كلنا نعلم أن constructor يتم استدعاؤه عندما نقوم بعمل object من الكلاس

الآن سؤالي في لارافيل يتم استخدام الconstructor بداخل الcontrollrer و يتم فيه إرسال متغيرات و استدعاء دوال و غيرها من الكود ، فما فائدة استدعاء constructor إذا لم نقم بعمل كائن من controller و هل يتم عمل كائن أو لا من controller ، أعلم أن السؤال قد يبدو بسيطا للبعض لكني لم أفهم هذه الجزئية ، و السؤال الآخر متى نكون بحاجة إلى عمل constructor و ما الطريقة الأفضل لاستخدامه، و شكرا لكم


التعليق السابق

حقيقة أشكرك على هذا الرد الرائع و هذا بالتحديد ما كنت أرغب بمعرفته ، لكن ما زال لدي بعض اللبس ، الآن على سبيل المثال : عندما يكون لدي في ملف web.php الكود الآتي Route::get('/anything', 'FirstController@firstmethod' ); هل بهذا السطر يتم استدعاء الcontroller و بالتالي يتم عمل object هنا أم ماذا ، و بالنسبة لما ذكرت أنه عند طلب رابط معين فإنه يتم استدعاء ملف index.php فمتى إذن يتم تنفيذ الراوت الموجود بملف web.php ، عذرا لكثرة أسئلتي

bederrar أضف ردا

بهذا السطر نحن نقوم فقط بتعريف الموجهات هذه الموجهات سيتم ملؤها لاحقا في قائمة أو مصفوفة عناصرها عبارة عن كائنات من الصنف Route. هذه المصفوفة هي إحدى خصائص (properties) من نُسخة التطبيق التي يتم إنشاؤها و بالتالي عند إرسال طلب سيتم البحث في المصفوفة عن التوجيه الموافق و المناسب للطلب المُرسل و إذا وُجد توجيه موافق سيتم تنفيذه، التوافق يكون على أساس الرابط و الميثود و إذا كان الaction الخاص بالتوجيه الموافق نوعه متحكم (isControllerAction) فبالتالي سيتم البحث عن المتحكم الموافق وإنشاء نسخة منه في حالة عدم وجودها و هنا سيتم تنفيذ الconstructor الخاص بالمتحكم.

هناك عدة أشياء تحدث في الخفاء و نحن سنجدها جاهزة فقط سنستخدمها فمثلا عملية الربط بقاعدة البيانات نحن لا نقوم بها و لا نقوم بالإتصال بقاعدة البيانات فنحن فقط نُعرف إعدادات الإتصال في ملف .env لكن آلية الإتصال تحدث في الخفاء . عملية تحميل الإعدادات المختلفة التي نضعها في مجلد config و إتاحة إستخدامها أيضا مخفية . ال responses، ال middlewares، الrequests، معالجة الأخطاء و الإستثناءات ... بتعمقنا في إطار العمل سنفهم كيف تتم هذه الأشياء، لكن لن تفيدك في شيء فالأحسن التركيز على كيفية إستخدام الفريموورك و ليس كيف تم بناؤه و كيفية معالجته للأمور.

اتمنى لك التوفيق