• 0
quot4life

شرح Reflection in PHP

سؤال

السلام عليكم ممكن شرح بالعربي للـ 

Reflection in PHP

 

وشكرااااا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

السلام عليكم  -> أخى العزيز

 

Reflection هى عبارة عن كلاس مدمجة فى PHP تستخدم مع Classes و Interfaces,

 

فكما تعرف أن كل class أو interface فى PHP تحتوى على:

  • خصائص (Properties)
  • دوال (Methods)
  • وسائط الدوال (Parameters)
  • غير ذلك

 

ولكن ما فائدة الـ Reflection ؟  لكى تعرف فائدتها أفهم معنى الكلمة (Reflection = انعكاس)

 

 

أعطيك مثال بسيط:

إذا نظرت فى المرآة ماذا ستشاهد ؟ أكيد طبعا ستشاهد نفسك أى حصل إنعكاس على نفسك فشاهدت تفاصيلك (وجهك, عينك, زراعك, إلى أخرة).

هكذا نفس الفكرة مع Reflection هى عبارة مرآة تعكس تفاصيل الـ Classes أو الـ interfaces المدمجة فى الـ PHP أو حتى التى تنشأها بنفسك.

 

 

تكلمنا كثيرا, لكن لازالت الرؤية غير واضحة, إذن سنقوم بإشاء مثال بسيط يوضح الفائدة.

لدينا Class أسمة information يستخدم فقط لتخزين بيانات(الاسم, العمر, الدولة)  بأستخدام method, ويمكن أستدعاء هذة البيانات بـ method أخر.

class information {        private $name;    private $age;    private $country;    public function __construct($name, $age, $country) {        $this -> name = $name;        $this -> age = $age;        $this -> country = $country;    }    public function getInfo() {        echo "Name: ".$this -> name."<br/>Age: ".$this -> age."<br/>Country: ".$this -> country;    }    public function setInfo($name, $age, $country) {        $this -> name = $name;        $this -> age = $age;        $this -> country = $country;    }}

الان نريد أستخدام Reflection لكى نعلم بعض التفاصيل عن هذة الكلاس الذى قمنا بإنشائها.

 

 

بعض الامثلة التى سنقوم بعملها هى:

  • معرفة الـ Methods الخاصة بهذة الكلاس
$info = new ReflectionClass('information');$methods = $info -> getmethods();echo "<pre>";print_r($methods);echo "</pre>";

النتيجة: إظهار كافة الدوال التى تحتويها الكلاس.

 

  • معرفة الـ Properties الموجودة فى هذة الكلاس
$info = new ReflectionClass('information');$Properties = $info -> getProperties();echo "<pre>";print_r($Properties);echo "</pre>";

النتيجة: إظهار كافة الخصائص التى تحتويها الكلاس.

 

  • معرفة Parameters خاصة بدالة محددة .
$info = new ReflectionClass('information');$method = $info -> getMethod('setInfo');$parameters = $method -> getParameters();echo "<pre>";print_r($parameters);echo "</pre>";

النتيجة: إظهار الوسائط الخاصة بدالة محددة.

 

 

ليس هذا فقط بل يوجد الكثيير من الـ Method التى تمتلكها Reflection والتى يمكنك أستخدمها لإستكشاف تفاصيل أى class أو interface .

يمكنك أكتشافنها من خلال هذا الرابط

 

هذة الموضوع مجرد نبذة قليلة عن Reflection, ولكن يمكن زيادة المعلومات بإجتهادك الشخصى.

 

بالتوفيق ..........

تم تعديل بواسطه مستر برمجة
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الف شكر لك يا أخي العزيز بارك الله فيك ,هذا ما كنت احتاجه مقدمة لكي استطيع ان اجتهد شخصياا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .