الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الكائنات والاحداث في PHP

مغلق
بدأه Dr.Pain في 7 أغسطس 2006 · 2 رد · 823 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هنا سوف نتحدث عن كيفية بناء كائن ومن ثم اضافة احداث لهذا الكائن ...

اذا اردنا بناء فئة ما ولنقل ان اسمها Person بحيث تحتوي على عضو اسمه SetAge وظيفته

استقبال عمر الشخص فان كان اكبر من 100 فان الفئة تقوم بقدح حدث اسمه WrongAge

وان كان اصغر فانها تقوم بقدح حدث اخر اسمه RightAge .

حسن لتنفيذ الكلام السابق سوف نقوم بالاتي :

1- سوف نقوم بتعريف عضو اسمه WrongAgeEvent لكي يستقبل الدالة المراد تنفيذها في حالة

الخطأ وسوف نجعل مجال الوصول اليه Public.

2- سوف نقوم بتعريف عضو اسمه RightAgeEvent لكي يستقبل الدالة المراد تنفيذها في حالة

الخطأ وسوف نجعل مجال الوصول اليه Public.

3- سوف نقوم بتعريف العضو المسمى SetAge ومن ثم سوف نختبر قيمة العمر الممرة له فان

كانت اكبر من 100 فان سوف نقوم بتنفيذ الدالة المخزونة في العضو WrongAgeEvent بواسطة

دالة PHP المسماة call_user_func وذلك بتمرير العضو WrongAgeEvent كمتغير لها

والعكس حيث اننا سوف نقوم بتمرير العضو RightAgeEvent كمتغير للدالة call_user_func

في حالة كانت قيمة العمر اصغر من 100 .

<?php

Class Person{

		public $WrongAgeEvent;
		public $RightAgeEvent;

		Function SetAge($age){
			if($age>100){
				call_user_func($this->WrongAgeEvent);
			}
			else{
				call_user_func($this->RightAgeEvent);
			}
		}

};

$p = new Person;

function WrongAge(){
		echo "Wrong Age";
}

function RightAge(){
		echo "Right Age";
}

$p->WrongAgeEvent = "WrongAge";
$p->RightAgeEvent = "RightAge";

$p->SetAge(10);


?>

هذا مثال اخر يوضح مدة افصال الفئة عن العالم الخارجي :

<?php

Class Person{

		public $WrongAgeEvent;
		public $RightAgeEvent;

		Function SetAge($age){
			if($age>100){
				call_user_func($this->WrongAgeEvent);
			}
			else{
				call_user_func($this->RightAgeEvent);
			}
		}

};

$p = new Person;

function WrongAge(){

	for($i=1; $i<7; $i++){
	echo "<h$i>Wrong Age</h$i>";
	}
}

function RightAge(){

		for($i=1; $i<7; $i++){
	echo "<h$i>Right Age</h$i>";
	}
}

$p->WrongAgeEvent = "WrongAge";
$p->RightAgeEvent = "RightAge";

$p->SetAge(108);


?>

ارجوا من الاعضاء ان يدلوا بارائهم حتى تعم الفائدة فربما كانت لدى عضوا اخر فكرة افضل من هذه

اخوكم Dr.Pain

1
#2

السلام عليكم

انا لمة قريت العنوان افتكرتك حتتكلم عن الـ Observer Pattern بس تخمينى مطلعش فى محله.

الأسلوب الى انت مستخدمه بتحاول تقرب بيه لتطبيق الـ events فى #C , بس صعب تنفذها بنفس الطريقة مع php .

و ركز دايما على ان الـ OO عموما موجود عشان يبسط الأمور.

انا من رأيى مرة تانية انك تستخدم الـ Observer Pattern و حتلاقى انها مرنة معاك اكتر إن شاء الله.

شكرا

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#3

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

انا بصراحة جديد على علم ال Design Pattern :lol: لكن ان شاء الله سوف اعمل بنصيحتك وسوف اطلع على موضوع الـ Observer Pattern

تشكر اخي شريف افادك الله :rolleyes: :rolleyes:

اخوكم Dr.Pain

هذا الموضوع مغلق.

مواضيع مشابهة