SPEED 3 NET

Web master tools - programmes - scripts - html code - code css
 
الرئيسيةSpeed Portalمكتبة الصورس .و .جبحـثالأعضاءالمجموعاتدخولالتسجيل

شاطر | 
 

 برمجة الـ OOP فى الـ Php

اذهب الى الأسفل 
كاتب الموضوعرسالة
khdiwi
ELkInG 3s
ELkInG 3s


عدد المساهماتى : 1994
الجنس : ذكر

مُساهمةموضوع: برمجة الـ OOP فى الـ Php   الثلاثاء أغسطس 25, 2009 6:52 pm

ماهى الـ OOP؟

الحروف OOP اختصار لـ Object-oriented programming

ورأيت الكثير ترجموا هذا المصطلح تحت مسمى الكائنات الحية فى البرمجة.

لكنى لم افضل هذه الترجمة لأنها عرقلتنى كثيرا فى مراحلى الأولى لفهم الية عمله.

الـ OOP فى نظرتى المتواضعة.

عن وسيلة لجعل البرمجة اكثر مرونة وفهم وسهولة.

هى عبارة عن قالب (يسمى class) يضم بداخله عدة دوال (نطلق عليها الإسم methods) وعدة متغيرات (يطلق عليها المسمى properties ).


اذن لنبدأ التفاصيل على بركة الله.


اول شئ ماهو الـ Object ؟

الـ object هو متغيير نستطيع عن طريقه الوصول لمحتويات القالب الذى نقوم بإنشائه.

عن طريق الـ object نستطيع الوصول لكل دوال ومتغيرات القالب.
(اقصد بكلمة قالب مايعرف فى برمجة الـ OOP بإسم class)

اذن كيف انشئ object؟
اول شئ لتنشئ object يجب ان يكون هناك class
اذن لننشئ class
كود PHP:

class a_class{
//محتوى الكلاس يأتى هنا
}


فى الكود اعلاه اسم القالب او الـ class هو a_class

لننشئ object لهذا الكلاس يتم الأمر بالشكل التالى
كود PHP:

$object = new a_class;


فى الكود اعلاه اصبح المتغيير $object
هو object للكلاس a_class

اظن كل شئ بسيط حتى الأن,

اذن كيف انشئ properties لهذا الـ object ؟

هذا يتم عن طريق الكلاس نفسه (سوف اتابع بقية الشرح بنفس المثال الذى تم استخدامه بأول الدرس)

كود PHP:

class a_class{
//declear an property to this class
var $property = 'this is a property';
}


هكذا تم اضافة متغيير او خاصية او property للـ object الخاص بهذا الكلاس.

ولاحظ اننا وضعنا كلمة var قبل اسم المتغيير نفسه.
ونصل اليه بالشكل التالى كامثال
كود PHP:

$object = new a_class;
echo $object->property;


لاحظ استخدامنا للعلامة ->
هذه العلامة هى مانستخدمها للوصول لخصائص الكلاس او الـ object

كما يمكننا ايضا ان نغيير قيمة هذا المتغيير خارج الـ class بالشكل التالى
كود PHP:

echo $object->property;
$object->property = '<br />this property have been changed';
echo $object->property;


كما يمكننا بنفس الطريقة ان ننشئ او نستدعى دوال هذا القالب.

لنأخذ مثال
كود PHP:

class a_class{
//declear an property to this class
var $property = 'this is a property';

//هذه الدالة لا تأخذ اى معطيات
//لكنها فقط تعود لنا بقيمة المتغيير
//$property
function getProperty(){
return $this->property;
}
}

$object = new a_class;
echo $object->getProperty();
$object->property = '<br />this property have been changed';
echo $object->getProperty();


لاحظ عندما اردنا استدعاء المتغيير property داخل الكلاس نفسه كيف استدعيناه؟
لقد استدعيناه عن طريق الكلمة
$this
وهذه الكلمة ترمز للكلاس نفسه, او الـ object
يعنى عندما نستدعى متغيير ما, او دالة ما ونحن داخل المتغيير نستدعيها بالشكل التالى
كود PHP:

//لإستدعاء دالة
$this->method_name_here()

ولإستدعاء متغيير
كود PHP:

$this->property_name_here;



الدالة __construct والدالة __destruct

كل من الدالتين, يقع تحت مسمى الـ magic methods او الدوال السحرية.

الأولى, تعمل مباشرة عند استدعاء الكلاس, والثانية تعمل مباشرة عند انتهاء الكلاس من العمل.

واستخدامهم مثلا, اذا كان الكلاس للعمل على قاعدة بيانات مثلا.
يجب وضع الإتصال بقاعدة البيانات داخل الدالة __construct
ووضع غلق قاعدة البيانات داخل الدالة __destruct

ومعطيات دالة __construct

يتم وضعهم عند انشاء object للـ class

كامثال.
كود PHP:

class mysql_co{

var $link;
//the construct method
//هذه الدالة ستعمل عندما ننشئ اوبجيكت لهذا الكلاس
function __construct($dbhost, $dbuser, $dbpass, $dbname){
$this->link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
}
}
//على فرض ان المتغيرات التالية تحمل بيانات قاعدة البيانات
$host = 'localhost';
$user = 'pepo';
$pass = 'pass';
$dbname = 'myDbName';
//نقوم بإنشاء اوبجيكت لهذا الكلاس بالشكل التالى

$connect = new mysql_co($host, $user, $pass, $dbname);


اتمنى يكون درس اليوم كان بسيط وبإذن الله سوف نتعمق اكثر فى الـ OOP بالدروس التالية
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
برمجة الـ OOP فى الـ Php
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
SPEED 3 NET :: |l|l| Technology ParT|l|l| :: برامج و طرق عمل البرامج-
انتقل الى: