معهد دعم اتش فى اى بى اس لحلول الويب - Powered by vBulletin


 
 
النتائج 1 إلى 2 من 2

الموضوع: البرمجة كائنيه التوجيه في الإصدار php5

  1. #1
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    البرمجة كائنيه التوجيه في الإصدار php5


    بسم الله الرحمن الرحيم



    سأقوم بسرد ما نحتاجه في هذه المقالة في عناوين و من ثم شرحها كلٍٍ علي حدى



    محتويات المقالة :-



    1- ما هو الكائن

    2- إنشاء الكائن

    3- تحديد الخواص

    4- تحديد الأفعال

    &-استخدام الافعال و الخواص
    &- استخدام الكائن

    5- الوراثة

    6- الدالة construct و destruct

    7- نسخ الكائن

    8- تجريد الكائن

    9- الكلمات ألمفتاحيه private, public, protected

    10- الثوابت

    11- نظره شامله علي الكائن

    12- أمثله علي البرمجة ألكائنيه

    -------------------------------------------------

    1- ما هو الكائن :



    بدأت php استخدام البرمجة الموجهة لكائن و المعروفة في معظم لغات البرمجة Object Oriented Program(OOp ) بداية من PHP4 ثم تطورت في PHP5 مما أدى إلي سرعة كتابه الاسكربتات و إضافة خواص جديدة إلى هذه الأسكربتات منها زيادة الاستفادة من المحرك Zend

    و التي أدت إلي زيادة سرعة تشغيل الاسكربت الذي يحتوي علي كائن عن ما كان عليه في الإصدار php4

    • & الكائن ببساطه :

    الكائن بكل بساطه هو كل ما هو موجود في هذا الوجود علي سبيل المثال الإنسان

    ما الذي نلاحظه في الإنسان بشكل عام دون الخوض في تفاصيل الإنسان جسمه يتكون من رأس

    و رجلان و ذراعان جيد الانسان يمتلك ذراعان لذلك هو يستطيع استخدمها في حياته

    مثلاً نستخدم الزراع في حمل الأشياء الان استطعنا ربط تكوين الإنسان بأفعاله

    فإن كان لا يملك ذراعيين فلن يستطيع استخدمها في حمل الأشياء إذاً لكل فعل خاصية يجب ان تكون متوافره في الكائن

    الخلاصه الكائن يتكون من خواص و الأفعال لنكبر المثال أكثر



    لدينا قاعدة بيانات و نريد عمل كائن تكون مهمته هي الاتصال بهذه القاعدة و جلب المعلومات منها

    إذاً سنحتاج تحديد خواص لهذا الكائن تجعله مناسب لهذه المهمة

    مثلاً نجعله قادر علي الاحتفاظ بما يجلبه من قاعدة البيانات في مصفوفة حتى نستطيع فيما بعد التحكم في هذه البيانات جميل جداً

    و لكن هل تعتقد معي أن الخواص واحدها كافية لجعله قادر علي القيام بهذه المهمة بالشكل الأمثل الإجابة هي لا فالطفل الرضيع يمتلك كل الخواص التي تجعله يمشي و يتكلم و لكنه لا يستطيع عمل ذلك بدون تدريب و نضوج من هنا يجب علي المبرمج استخدام عقله في إنشاء أفعال الكائن فلا يمكن مثلاً عمل فعل في الكائن يقوم بقطع الاتصال بقاعدة البيانات و هو لم يقوم في الاصل بعمل الاتصال من بهذه القاعدة

    كل هذه الأشياء سنتناولها بشكل مٌفصل فيما بعد فلا تقلق بشأنها.



    نقره لتكبير أو تصغير الصورة ونقرتين لعرض الصورة في صفحة مستقلة بحجمها الطبيعي


    2- إنشاء الكائن:



    كل ما عليك لإنشاء الكائن استخدام هذه الجمله


    كود PHP:
    Class اسم الكائن 
      

      
    //محتويات الكائن كخواصه و أفعاله 
      




    3- تحديد خواص الكائن




    كما تكلمنا سابقاً عن الخواص التي يجب تحديدها للكائن حتي يستطيع ان يعتمد عليها في افعاله

    في الكائنات يتم تحديد الخواص من خلال وضعها في متغيرات عن طريق الكلمة المفتاحيه

    var



    مثال :




    كود PHP:
    class TV // قمنا بعمل كائن بأسم TV 
      

      
      
      
    var 
    اسم الخاصيه 
      







    كود PHP:
    class TV // قمنا بعمل كائن بأسم TV 
      

      
      
      
    var 
    $tardod12036// قمنا  بإنشاء متغير كخصيه يحمل الرقم  
      
    // 12036 بشكل  إفتراضي 
      
      
      


    ملحوظه ما يساويه المتغير يكون هو قيمة المتغير الافتراضيه يعني يمكن تغيرها فيما بعد



    مثال اخر




    كود PHP:
    class TV // قمنا بعمل كائن بأسم TV 
      

      
      
      
    var 
    $tardod= array(); // قمنا  بإنشاء متغير  يحمل مصفوفه خاليه 
      

      




    3- تحديد افعال الكائن

    افعال الكائن هي الوظائف التي يقوم بها و معنى كلمة وظيفة في الانجليزيه هي Function
    هل تتذكر معي هذه الداله التي استعانا بها في إنشاء دوال خاصه بنا تابع
    كيف تصنع دالة خاصة بك php

    هي نفس الطريقة المستخدمه في صنع وظائف أو افعال الكائن أو الفئه الخاصه به class

    قد تسأل نفسك لماذا نستخدمها في الكائن و من الممكن استخدمها بشكل مباشر دون هذه التعقيدات طبعاً يوجد فرق كبير جداً و هي ان الدوال في الكائن أو الوظائف تتيح لك ربطها بالخصائص و كذلك ربط الوظائف مع بعضها و ايضاً كل كائن يحمل وظائف يعبر عن جزء من البرنامج بمفرده علي عكس الدوال لوحدها

    مثال


    كود PHP:
                           class TV  
      

      

    function 
    اسم الوظيفه () 


    // محتوايات الوظيفه 


      


    مثال


    كود PHP:
    class TV  
      

      

    function  
    print_msg ($message


    print 
    "<div>$message</div>"


      


    &-استخدام الافعال و الخواص


    بعد ما عرفنا كيف نقوم بتحديد افعال و خصائص الكائن سنحتاج لربطهم ببعض

    عن طريق الكلمة
    كود PHP:
                            $this-> 
    مثال


    كود PHP:
    class TV  // كائن التلفاز 

    // متغير يحمل لون التليفاز  
    var $color'اسود ';  


    function 
    tv_color() 


    echo 
    " لون التلفاز هو   
    $this-> color"




    /* 

    استخدمنا الكلمه  

    $this-> 

    في  استدعاء  المتغير   

    color 

    */ 


    اذا اردت استدعاء متغير داخل الكائن عن طريق الكلمة
    كود:
     $this->
    يجب كتابتها هكذا


    كود PHP:
                           $this->المتغير 
    و ليس


    كود PHP:
                           $this->$المتغير 

    و كذلك عن طريق هذه الكلمة تستطيع استعداء الدوال داخل بعضها

    ملحوظه : لا يتم استخدام هذه الكلمة إللا داخل الدوال فقط

    مثال




    كود PHP:
    class TV  // كائن التلفاز 

    // متغير يحمل لون التليفاز  
    var $color'اسود ';  


    function 
    tv_color() 


    return
    " لون التلفاز هو   
    $this-> color"





    function 
    total() 


    print 
    $this->tv_color(); // قمنا  بإستدعاء الداله tv_color 
    // التي  تقوم بطباعة لون التلفاز  






    &- استخدام الكائن


    بعد إنشاء الكائن و تحديد خواصه و افعاله و ربطها ببعض يتم استخدام الكائن عن طريق الكلمة

    new

    مثال


    كود PHP:


    // عملية استدعاء الكائن  

    $tv = new اسم الكائن 

    // و لو اردنا استخدام احد خواص و التعديل عليها أو أحد الوظائف  

    $tv->اسم الوظيفه(); 
    مثال



    كود PHP:

    class TV  // كائن التلفاز 

    // متغير يحمل لون التليفاز  
    var $color'اسود ';  


    function 
    tv_color() 


    return
    " لون التلفاز هو   
    $this-> color"





    function 
    total() 


    print 
    $this->tv_color(); // قمنا  بإستدعاء الداله tv_color 
    // التي  تقوم بطباعة لون التلفاز  






    $tv= new TV

    $tv->color='أحمر'

    print 
    $tv->total(); 


  2. #2
    أدارى
    الصورة الرمزية HVIPS4


    تاريخ التسجيل: Jun 2011
    رقم العضوية: 6
    الدولة: Cairo
    المشاركات: 1,979
    HVIPS4 غير متواجد حالياً

    رد: البرمجة كائنيه التوجيه في الإصدار php5


    الوراثة

    الوراثه من أكثر الاشياء الممتعه في البرمجه الكائنيه
    • ما هي الوراثه

    من المعروف في حياتنا العملية ان لكل شيئ مصدر و هذا المصدر يحتوي علي بعض صفات هذا الشيئ

    مثلاً الانسان مصدره ابويه فيرث منهما بعض الصفات كلون البشره و العين و طول القامه و لكنه يوجد به ما يميزه عن ابويه

    مثلاً السياره فمثلاً أول سياره تم إختارعها كانت ذات الاربع عجلات بالشكل البدائي أما الاجيال المتطورها اصبحت ذات صفات أخرى متطوره مختلفه عن اول سياره تم إختارعها و لكن الشكل المبدائي واحد

    إذاً نستنتج من ذلك انه يوجد في اب و ابناء في علاقة الوراثه الاب يحمل صفات فيرثها منه ابنائه كامله و لكنها تحتوي ايضاً علي صفات تختلف عن الاب
    • الكلمة المفتاحيه extends

    تتم عملية التوريث من خلال الكلمة المفتاحيه extends

    مثال




    class A
    {


    }


    class
    B extends اسم الكائن المراد الإرث منه
    {


    }
    ملحوظه : الكائن الوريث يحتوي علي كل محتويات الكائن المورث أما الكائن المورث لا يحتوي علي صفات الكائن الوريث


    مثال



    class A
    {

    var
    $name='الوراثه تختصر الوقت ';

    }


    class
    B extends A
    {

    function
    msg()
    {

    echo
    $this->name; // استطعنا استخدام احد خصائص الكائن الاب
    // A
    // لأنه ورث كل محتويات الكائن
    // A

    }

    }


    6- الدالة construct و destruct

    • &مؤسس الصنف construct

    ما هي مؤسس الصنف ؟

    عندما تقوم ببناء الكائن قد تحتاج وضع إعدادات إفتراضيه له أو طباعة شيئاً معين عند استدعاء الكائن

    فجائت ال php 5 بإضافة الكلمة المفتاحيه
    __construct
    مثال




    class TV
    {


    function
    __construct()
    {

    echo
    "تم إنشاء الكائن ";

    }


    }


    $tv = new TV ; // سيتم طباعة ما في مؤسس الصنف
    • &مدمر الصنف destruct

    مثلاً عندما نقوم بمحو متغير الكائن من الذاكره عن طريق الداله
    unset()
    قد نحتاج لإجراء معين كمثلاً طباعة جملة معينه أو محو اشياء من الذاكره

    مثال




    class TV
    {


    function
    __construct()
    {

    echo
    "تم إنشاء الكائن ";

    }

    function
    __destruct()
    {

    echo
    "تم مسح الكائن";

    }

    }


    $tv = new TV ; // سيتم طباعة ما في مؤسس الصنف

    unset($tv); // سيتم طباعة ما في مدمر الصنف


    7- نسخ الكائن
    يتم نسخ الكائن عن طريق الكلمه المفتاحيه


    clone
    مثال


    class c
    {

    var
    $num=50;

    }

    $c= new c;
    $s= clone $c; // تمت عملية النسخ و اصبح لدينا الكائن المنسوخ تحت المتغير $s

    echo $c->num;

    echo
    "<br/>";

    echo
    $s->num;
    و لكن في بعض الاشياء نريد تميير الكائن المنسوخ بالتعديل علي بعض الخواص


    يتم ذلك من خلال الكلمة المفتاحيه


    __clone
    مثال



    class table
    {

    var
    $border = 3;
    var
    $color = "red";

    function
    inputItem( $num )
    {

    $this->border = $this->border + $num ;

    print
    " $num حجم حدود الجدول هو ";

    }

    function
    __clone()
    {

    $this->border = 0 ;
    }

    }

    $firstTable = new table;
    $firstTable->inputItem(20);
    $secondTable= clone $firstTable;

    echo
    "<br/>".$firstTable->border ;

    echo
    "<br/>".$secondTable->border ;
    8- تجريد الكائن

    بوضع كلمة abstract قبل اسم الكائن يصبح هذا الكائن في هذه الحاله فئة مجرده بمعنى

    انه لا يمكن استدعاؤها بواسطة الكائن و يكون هذا الصنف في هذه الحالة غير صالحه في عمل الكائن و لكن تكون صالحه فقط للوريث

    مثال مأخوذ من موقع php.net



    abstract class AbstractClass
    {
    // Force Extending class to define this method
    abstract function getValue();
    abstract function
    prefixValue($prefix);

    // Common method
    function printOut() {
    print
    $this->getValue() . "\n";
    }
    }

    class
    ConcreteClass1 extends AbstractClass
    {
    function
    getValue() {
    return
    "ConcreteClass1";
    }

    function
    prefixValue($prefix) {
    return
    "{$prefix}ConcreteClass1";
    }
    }

    class
    ConcreteClass2 extends AbstractClass
    {
    function
    getValue() {
    return
    "ConcreteClass2";
    }

    function
    prefixValue($prefix) {
    return
    "{$prefix}ConcreteClass2";
    }
    }

    $class1 = new ConcreteClass1;
    $class1->printOut();
    echo
    $class1->prefixValue('FOO_') ."\n";

    $class2 = new ConcreteClass2;
    $class2->printOut();
    echo
    $class2->prefixValue('FOO_') ."\n";
    لاحظ وجود كلمة abstract قبل اسم الكائن ووجدها ايضاً قبل اسماء الدوال الموجوده داخل الكائن الاول , و لا يمكن عمل دالة مجرده داخل كائن غير مجرد اي لا يمكن استخدام

    abstract

    قبل اسم اي دالة موجوده داخل اي كائن عادي

    9- الكلمات ألمفتاحيه private, public, protected

    تستخدم هذه الكلمات قبل الخصائص و الدوال الموجوده داخل الكائن لجعلها ذو صفه معينه

    فالكلمة

    private : تجعل ما بعدها سري لا يمكن الوصول إليه من خارج الكائن و لا من الكائن الوريث يستخدم داخل الكائن فقط

    public : تجعل ما بعدها عام يمكن استخدمه في كل انحاء البرنامج و هو الوضع الافتراضي للدوال و الخصائص

    protected : تجعل ما بعدها سري لا يمكن استخدمه اللا داخل الكائن و الوصول إليه داخل الوريث

    مثال :


    class MyClass
    {
    privat $color = "blue";
    public
    $color2 = "red";
    protected
    $color3 = "white";

    }
    10- الثوابت

    بإمكانك ايضاً عمل ثوابت داخل الكائن مثلما تقوم بعمل متغيرات عن طريق الكلمه المقتاحيه


    const
    مثال


    class MyClass
    {

    const
    color="red";

    function
    __construct()
    {

    print
    self::color;
    }

    }

 

ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •