Emad Saif نشر 12 أبريل 2022 أرسل تقرير نشر 12 أبريل 2022 في أي مشروع مبني بإستخدام PHP أجد أنه يتم إستعمال namespaces بشكل أساسي (في الغالب مع composer) ولكنني لم أفهم فائدة هذا الأمر جيدًا أليست namespace تستعمل في إستدعاء الأصناف classes فقط، أم أن لها فائدة أخرى؟ ولماذا لا نستعمل require أو include فقط لإتمام هذه المهمة؟ 1 اقتباس
1 Hassan Hedr نشر 12 أبريل 2022 أرسل تقرير نشر 12 أبريل 2022 قد تتشابه استخدامات use (أو Namespaces) و require ظاهريًا حيث تستخدم لجلب واستخدام شيفرات من وحدات برمجية أو ملفات php أخرى لكنها تختلف فعليًا كليًا عن بعضها requrie يفيد استخدامها في جلب محتويات ملف php كافة من متغيرات وأصناف إلى الملف الحالي، يصبح كأننا قمنا بنسخ ولصق محتويات ذلك الملف مكان استخدام require، ويجب ذكر المسار المطلق لملف الوحدة في كل مرة: // module.php $number = 5; class Foo {} // index.php require('path/to/module.php'); new Foo() echo $number + 2; // 7 // يساوي $number = 5; class Foo {} new Foo() echo $number + 2; use تستخدم لتعريف الأصناف فقط المستخدمة من الوحدات الأخرى في الملف الحالي، وهي تساوي إعادة تعريف الصنف في الملف الحالي، وميزة ذلك أننا لا نضطر لذكر المسار المطلق للوحدة في كل مرة نريد استخدامها بل نكتفي بذكر اسم النطاق مرة واحدة ضمن الملف في الأعلى وسيتولى composer بتوليد الربط الصحيح بين تلك الملفات: // module.php namespace Module; class Foo { } // index.php use Module\Foo; $foo1 = new Foo(); $foo2 = new Foo(); // يساوي class Foo { } $foo1 = new Foo(); $foo2 = new Foo(); يمكنك الاستفادة من قراءة المقالات التالية: اقتباس
1 Ahmed Abu Hatab نشر 13 أبريل 2022 أرسل تقرير نشر 13 أبريل 2022 الnamespace قامت بحل مشكلتين في php : 1 - إنها تسمح بتنظيم أفضل من خلال تجميع ال classes التي تعمل معًا لأداء مهمة ما . 2 - أنها تسمح باستخدام نفس الاسم لأكثر من ال class واحد . ومن فوائده أيضاً في ال composer هو استدعاء مسار الملف كامل أثناء عملية ال autoload . اقتباس
السؤال
Emad Saif
في أي مشروع مبني بإستخدام PHP أجد أنه يتم إستعمال namespaces بشكل أساسي (في الغالب مع composer) ولكنني لم أفهم فائدة هذا الأمر جيدًا
أليست namespace تستعمل في إستدعاء الأصناف classes فقط، أم أن لها فائدة أخرى؟
ولماذا لا نستعمل require أو include فقط لإتمام هذه المهمة؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.