آخـــر الـــمـــشـــاركــــات

تحميل برنامج الغاء تثبيت البرامج من الكمبيوتر Should I Remove It » آخر مشاركة: اردني وافتخر دردشة وتعليله وسواليف.. » آخر مشاركة: عاشق الحصن بريد الاعضاء » آخر مشاركة: محمد العزام اهلا بكم ..رمضان كريم » آخر مشاركة: حسان القضاة شو عم تسمع هلا » آخر مشاركة: حسان القضاة ما هو سبب تواجدك في المنتدى والى اي حدّ يستمر او ينتهي إنتسابك له ؟ » آخر مشاركة: قلعتي أبدية مرحبا » آخر مشاركة: محمد العزام " أميــــرةُ قـوسِ النَّصـــــر" » آخر مشاركة: قلعتي أبدية ~ إبريـــــــــــــــــل ~ » آخر مشاركة: حسان القضاة اسئلة مهمة بالفوتوشوب في المطابع 2019 » آخر مشاركة: المصمم يزن جبريل صاحب المركز الاول فى مجال تنزيل الملفات كامل مدي الحياة IDM 6.32 » آخر مشاركة: siiin همسات وأشوق » آخر مشاركة: حسان القضاة ""أيلـول""... » آخر مشاركة: قلعتي أبدية تبليغ عن رسالة زائر بواسطة راشد مرشد » آخر مشاركة: أميرة قوس النصر اشتقنالكم » آخر مشاركة: Mahmoud Zaben تُراهات ما قبل النوم ... » آخر مشاركة: قلعتي أبدية شو مزاجك اليوم... » آخر مشاركة: قلعتي أبدية قبول بلاغ عطل ثلاجات كلفينيتور 01092279973 & 0235700997 وكيل كلفينيتور (م .الجديدة) » آخر مشاركة: الوكيل1 قبول بلاغ عطل ثلاجات هوفر 01154008110 & 0235699066 وكيل هوفر (م.6اكتوبر) » آخر مشاركة: الوكيل1 قبول بلاغ عطل ثلاجات جنرال اليكتريك 01207619993 & 0235700997 وكيل جنرال اليكتريك (الز » آخر مشاركة: الوكيل1
+ الرد على الموضوع
النتائج 1 إلى 3 من 3

الموضوع: [دورة php - الدرس الثامن عشر] - مقدمة الى البرمجة الموجهة للكائنات

العرض المتطور

  1. #1
    عضو مؤسس الصورة الرمزية Sc®ipt
    تاريخ التسجيل
    Nov 2008
    الدولة
    There's no place like 127.0.0.1
    العمر
    36
    المشاركات
    4,003

    Q (14) [دورة php - الدرس الثامن عشر] - مقدمة الى البرمجة الموجهة للكائنات

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



    السلام عليكم و رحمة الله و بركاته ,,, على مدار الدروس السابقة اتممنا معكم المستوى الأول من دورة ال php وهو مستوى المبتدئين و قد تعرفنا على اساسيات اللغة و كيفية التعامل معها و تقريبا قمنا بتغطية اهم المواضيع الأساسية في دراسة php و بإمكانكم الإطلاع على دروس الدورة السابقة كاملة من خلال الفهرس التالي :





    واليوم بإذن الله سنبدأ موضوع جديد في دورتنا وهو البرمجة الموجهة للكائنات (البرمجة الكينونية) ,, و في هذا المستوى من الدورة سوف نتعرف على معنى برمجة الكائنات و كيفية انشاء و برمجة الكائنات و الأصناف و كيفية التعامل ومها لتحقيق المبادئ الأساسية لبرمجة الكائنات ....

    موضوع درسنا اليوم سيكون نظري و سوف نتحدث فيه عن مجموعة من التعريفات و المصطلحات و سنتعرف على معنى برمجة الكائنات و سنتعرف على الصنف و ماذا يعني و ما هو الكائن و ماذا يعني و كيفية تقريب افكارنا البرمجية من الحياة الواقعية من خلال تطبيق مبادئ الوراثة و التصنيف و التغليف في البرمجة و على بركة الله نبدأ ...

    ما هي البرمجة الموجهة للكائنات ؟؟

    البرمجة الموجهه للكائنات OOP و هي اختصار للمصطلح Object Oriented Programming و نعني بالبرمجة الكائنية الوصول الى طريقة برمجة نستطيع من خلالها محاكاة الواقع الذي نعيش فيه ,, لو قلنا مثلا كيف بإمكاننا محاكاة انسان ,, سوف تجد ان هناك مبدأ للتعامل مع هذا الإنسان حسب صنفه فالبشر اصناف .. لاحظ معي مثلا : لنفرض انه هناك صنف class اسمه بشر . و من المؤكد ان كل البشر لديهم صفات attribute مثل الجنس او الطول او اللون او الوزن او غيرها .. و ايضا كل البشر لديهم عمليات operation خاصة بهم مثل موعد النوم و النهوض من الفراش ...

    تخيل اننا نستطيع فعل هذا في البرمجة !!!

    نعم ,, فالبرامج التي سنقوم بكتابتها من اليوم فصاعدا هي عبارة عن محاكاة لأساليب الواقع حيث ان البرنامج سوف يحتوي على عدة اصناف class و كل صنف له attributes خاصة به و سنقوم بعمليات على هذا الصنف ,,

    ان الفائدة من البرمجة الموجهة للكائنات و تقسيم البرنامج كبيرة جدا بحيث اننا نستطيع التعديل على جزء من برنامجنا دون التأثير على باقي اجزاء البرنامج و ايضا تقوية الأفكار البرمجية من خلال افكار محاكاة الواقع

    لكي تتوضح الصورة في مخيلتك لاحظ معي الصورة التالية :



    تلاحظ في الصورة ان البرنامج يتكون من class1 و class2 و class3 و كل واحد من هذه الأصناف له خصائص و عمليات خاصة به يقوم بها

    الآن ما هو الصنف ؟؟

    الصنف في البرمجة الموجهة للكائنات هو عبارة عن مجموعة من المتغيرات و الدوال توضع في اطار واحد كوحدة واحدة لاحظ معي المثال التالي لصنف سيارة بسيط جدا :


    كود PHP:
    <?php
        
    class car
        
    {
            
    // attribute
            
    var $car_name;
            var 
    $car_color;
            
            
    // operation or called methods
            
    function getCarName($car_name){
                
    $this->car_name $car_name;
            }
            function 
    printCarName(){
                echo 
    $this->car_name;
            }
        }
        
        
    $obj = new car;
        
        
    $obj->getCarName("BMW");
        
    $obj->printCarName();
    ?>


    هنا قمنا بعمل كلاس لسيارة فيه خاصيتين وهما اسم السيارة و لونها و قمنا بعمل عمليتين لهذا الكلاس من خلال تعريف دالتين خاصتين بالكلاس وهما قراءة اسم السيارة و طباعتها و في نهاية البرنامج قمنا بكتابة 3 سطور وهي انشاء كائن جديد من هذا الكلاس و اجراء العمليات الخاصة بالكلاس عليه .. لكن هنا سوف تسأل ما هو الكائن ؟؟؟ ,, الكائن يا عزيزي هو عبارة عن صورة مصغرة مشتقة من الصنف تمتلك كل خصائص الصنف فكل سيارة لها لون و لها اسم في مثالنا هذا و ايضا في الحياة العادية مثلا ,, انا كائن من صنف البشر لذلك لي جنس و لي لون و لي طول و لي وزن و الخ لكن هنا يجب ان نعلم ان ليست كل الكائنات تحتوي على نفس البيانات فمثلا انا كائن من صنف البشر لوني اسمر و غيري ابيض و انا كائن ذكر و فلانة كائن انثى لكن في النهاية جميعنا ننتمي الى صنف البشر .. و كذلك بالنسبة للسيارات فسيارة ال BMW هي كائن من صنف السيارة و ايضا المرسيدس لكن قوة محرك ال BMW تختلف عن المرسيدس مثلا وهكذا ....

    طبعا الأصناف class في برمجة المواقع يكون لها وظائف متنوعة فمنها ما هو للتصميم و منها ما هو للتحكم بقواعد البيانات و منها ما هو للتحكم برفع الملفات و غيرها الكثير و عادة تكون الأصناف كبيرة و منها ما هو معقد نوعا ما برمجيا لكن استخدامه يكون سهل بالنسبة للمبرمج بمجرد التعرف على خصائص و وظائف هذا الصنف .. وهذا مثال على صنف عملي يستخدم في المواقع الكبيرة و هو للتحكم بقواعد البيانات و قمت ببرمجة و تعديل بعض الصفات عليه على مر الأيام دون تأثر الموقع و هو للإطلاع فقط و معرفة ماهية الصنف و كيف من الممكن ان تكون اشكال الصنف :


    كود PHP:
    <?php
        
    #########################################
        # Coded By : Zaed Zaedan Murad (Sc®ipt) #
        # E-Mail : zaedo@al79n-php.info         #
        #########################################
      
    class Registration 

        private static 
    $username
        private static 
    $password
        private static 
    $confirmpassword
        private static 
    $name
        private static 
    $emailaddress
         
        private static function 
    Set_Values($_user,$_pass,$_confirm,$_name,$_email
        { 
            
    self::$username $_user
            
    self::$password $_pass
            
    self::$confirmpassword $_confirm
            
    self::$name $_name
            
    self::$emailaddress $_email
        } 
         
        private static function 
    Confirm_Registration_Info() 
        { 
            
    $errorlist = array('name'=>''
                               
    'username'=>''
                               
    'password'=>''
                               
    'email'=>''); 
            
    //NAME VALIDATION 
            
    if (strlen(self::$name) > 30 || empty(self::$name)){ 
                
    $errorlist['name'] = "Uncorrect Format For Name"
            } 
            
    //USERNAME VALIDATION 
            
    if (strlen(self::$username) > 30 || empty(self::$username)){ 
                
    $errorlist['username']="Uncorrect Format For Username"
            } 
            else if (!
    self::Is_Username_Exist()){ 
                
    $errorlist['username'] = "Username Already Exist"
            } 
            
    //PASSWORD VALIDATION 
            
    if (strlen(self::$password) > 17 || strlen(self::$password) < 4){ 
                
    $errorlist['password'] = "Uncorrect Format For Password"
            } 
            if (
    self::$password != self::$confirmpassword){ 
                
    $errorlist['password'] = "Password Dose NOT Match"
            }  
            
    //EMAIL VaLIDATION 
            
    if (!self::Is_Valid_Email()){ 
                
    $errorlist['email'] = "Uncorrect Format For Email Address"
            } 
            else if (!
    self::Is_Email_Exist()){ 
                
    $errorlist['email'] = "Email Address Already Exist"
            } 
            return 
    $errorlist
        } 
         
        private static function 
    Is_Valid_Email() 
        { 
             
    $address=strtolower(trim(self::$emailaddress));  
             return (
    preg_match(  
                
    '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+'.   // the user name  
                
    '@'.                                     // the ubiquitous at-sign  
                
    '([-0-9A-Z]+\.)+' .                      // host, sub-, and domain names  
                
    '([0-9A-Z]){2,4}$/i',                    // top-level domain (TLD)  
                
    trim($address)));  
        } 
         
        private static function 
    Is_Username_Exist() 
        { 
            
    $username self::$username
            
    $query "SELECT COUNT(username) FROM users WHERE username = '{$username}'"
            
    $result mysql_query($query); 
            
    Confirm_query($result); 
            
    $result mysql_fetch_array($result); 
            if (
    $result[0] > 0){ 
                return 
    true;} 
            else  
            {return 
    false;} 
        } 
         
        private static function 
    Is_Email_Exist() 
        { 
            
    $email self::$emailaddress
            
    $query "SELECT COUNT(email) FROM users WHERE email = '{$email}'"
            
    $result mysql_query($query); 
            
    Confirm_query($result); 
            
    $result mysql_fetch_array($result); 
            if (
    $result[0] > 0){ 
                return 
    true;} 
            else { 
                return 
    false;} 
        } 
         
        public function 
    Insert_User() 
        { 
            
    //SET Atrribute  
            
    $_name self::$name
            
    $_user self::$username
            
    $_pass self::$password
            
    $_email self::$emailaddress
            
    //FIELD VALIDATION 
            
    $check_field_validation self::Confirm_Registration_Info(); 
            
    $check_result true
            foreach (
    $check_field_validation as $value){ 
                if (!empty(
    $value)){ 
                    
    $check_result=false
                } 
            } 
            if (
    $check_result){ 
                
    $password md5($password); 
                
    $query "INSERT INTO `users` (`user_name`,`username`,`password`,`email`)VALUES('{$_name}','{$_user}','{$_pass}','{$_email}')"
                
    $result mysql_query($query,$connection); 
                
    Confirm_query($result); 
                return 
    mysql_insert_id(); 
            } 
            else { 
                return 
    $check_field_validation
            } 
             
        } 
    }
    ?>



    و من المواضيع المهمة التي سوف ندرسها ايضا من خلال الدروس القادمة ,, مبدأ الوراثة في البرمجة الموجهة للكائنات وهذا ايضا محاكاة للواقع فمثلا لدينا صنف اسمه شخص person و له اسم و عمر و وظيفة مثلا و نريد ان نوجد صنف جديد اسمه طلاب ,, هنا سوف تجد ان الطالب هو شخص اي بمعنى ان الطالب نستطيع ان نورثه صفات الشخص و يصبح للطالب اسم و رقم و وظيفة بدلا من كتابة الصنف من جديد ...

    و ايضا سوف سوف نتطرق الى مبدأ التغليف و التعددية Encapsulation and polymorphism و نقصد بها اخفاء البيانات و تعدد الصفات التابعة لنفس الصنف و ايضا سنتعرف على مصطلح ال public و ال private وهي خصائص التحكم بإمكانية الوصول الى المعلومات داخل الصنف و هذا ايضا من اهداف البرمجة الموجهة للكائنات و هو زيادة مستوى الحماية على انظمة الويب من خلال محاكاة الواقع

    و من مواضيع هذا المستوى ايضا سنتعرف على ما يسمى بدالة البناء او مؤسس الأصناف و الذي له فوائد كبيرة في تنفيذ البرامج ,, و ايضا سنتعرف على موضوع و هو التعابير المنتظمة و عدة مواضيع اخرى


    كان هذا الدرس نظري بحت و هو عبارة عن تمهيد للمستوى و بداية و تعريف بأهم مصطلحات البرمجة الموجهة للكائنات التي تعتبر في ايامنا اهم عنصر لقياس قوة لغة البرمجة لأنها تمنحنا التحكم الأكبر في برامجنا من خلال تقسيمة و تصنيفه ..

    و في الدرس القادم بإذن الله سنبدأ بدراسة هذه المواضيع واحدا تلو الآخر و التعمق بها

    والى ذلك الحين لكم مني اجمل تحية

    اخوكم : زيد مراد

    التعديل الأخير تم بواسطة Sc®ipt ; 05-09-2011 الساعة 11:19 PM

  2. #2
    عضو جديد
    تاريخ التسجيل
    Mar 2011
    العمر
    34
    المشاركات
    1

    افتراضي رد: [دورة php - الدرس الثامن عشر] - مقدمة الى البرمجة الموجهة للكائنات

    مشكووووووووووووووووووووووووووووووووووووووووور

  3. #3
    عضو نشيط الصورة الرمزية sarah-333
    تاريخ التسجيل
    Mar 2011
    الدولة
    الاردن
    المشاركات
    47

    افتراضي رد: [دورة php - الدرس الثامن عشر] - مقدمة الى البرمجة الموجهة للكائنات

    شكرا كتييييييييييييييييييييييييييييييييييييييييير

+ الرد على الموضوع

معلومات الموضوع

الأعضاء الذين يشاهدون هذا الموضوع

الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

المواضيع المتشابهه

  1. [دورة php - الدرس السابع عشر] - انشاء و برمجة الدوال functions
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 4
    آخر مشاركة: 01-28-2011, 08:22 PM
  2. [دورة php - الدرس السادس عشر] - اعادة استخدام الكود و ادراج الملفات
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 2
    آخر مشاركة: 01-28-2011, 06:22 PM
  3. [دورة php - الدرس الخامس عشر] - الجزء الثالث : دوال المصفوفات
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 3
    آخر مشاركة: 01-26-2011, 07:33 PM
  4. [دورة php - الدرس الرابع عشر] - الجزء الثاني : المصفوفات الحرفية و المركبة و تعريفها
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 4
    آخر مشاركة: 01-26-2011, 07:32 PM
  5. [دورة php - الدرس الثالث عشر] - الجزء الأول : المصفوفات الرقمية و تعريفها
    بواسطة Sc®ipt في المنتدى منتدى الدورات العلمية المتخصصه
    مشاركات: 3
    آخر مشاركة: 12-13-2010, 05:24 PM

الكلمات الدلالية لهذا الموضوع

مواقع النشر (المفضلة)

مواقع النشر (المفضلة)

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

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