آخر التدوينات الصفحة 2 Toggle Comment Threads | اختصارات لوحة المفاتيح

  • phpreference 12:20 AM on 1 February 2009 رابط دائم | رد  

    إنشاء الفئه class 

    قمنا في مقدمه هذه الدوره بالتعرف علي مفاهيم البرمجه كائنيه التوجه ، سوف نقوم الأن بكتابه الكود الخاص بإنشاء الفئه class .
    قبل قراءه هذا الدرس يجب قراءه درس الصلاحيات Visibility لأننا سوف نحتاجه في هذا الدرس.
    سوف نقوم في هذا الدرس بكتابه كلاس تعليمي وسنسميه textBox وظيفته كتابه أي جمله نحددها في مربع بسيط .

    لإنشاء أي فئه يلزمنا ثلاث خطوات رئيسيه وهي :

    1 – كتابه الأكواد الازمه لتعريف الفئه
    طبعاً في هذه الخطوه يلزم تسميه الفئه بأي أسم تريد ويكون الكود بالشكل التالي :

    <?php
    class أسم الفئه
    {
    	//تحديد خواص الفئه
    	//تحديد أساليب الفئه
    }
    ?>
    

    وإذا كانت الفئه فرعيه ترث خصائص وأساليب الفئه الأصليه يكون الكود بالشكل التالي :

    <?php
    class الفئه الفرعيه extends الفئه الأصليه
    {
    	//تحديد خواص الفئه
    	//تحديد أساليب الفئه
    }
    ?>
    

    ملحوظه : 
    كلمه extends  كلمه معرفه في لغه PHP ومعناها أن الفئه الفرعيه ترث خصائص وأساليب الفئه الأصليه وسوف نتناول هذا الجزء بالتفصيل في تدوينه قادمه عن الوراثه .

    2 – تحديد خواص – متغيرات – الفئه
    ونقوم في هذه الخطوه بإنشاء خواص الفئه وتحديد صلاحيات كل خاصيه كما بالشكل التالي:

    <?php
    class أسم الفئه
    {
    	أسم الخاصيه    الصلاحيه;
    }
    ?>
    

    الأن سوف نحدد خواص كلاسنا العزيز textBox :

    <?php
    class textBox
    {
         public $message;
         protected $width = 150;
    }
    ?>
    

    لقد قمنا بتحدد خاصيتين أحدهما message$ لحمل الرساله التي نريد عرضها ، والأخري width$ لتحديد عرض المربع النصي .

    ملحوظه : 
    يمكن تحديد قيمه الخاصيه – المتغير – عند تعريفها أو نترك قيمتها فارغه .

    3 – تحديد أساليب – دوال – الفئه
    وفي هذه الخطوه سوف نقوم بكتابه أساليب  الفئه  وهي كالدوال في البرمجه الهيكليه ولكن تكون مسبوقه بصلاحيه الأسلوب كما بالشكل التالي :

    <?php
    class أسم الفئه
    {
    	الصلاحيه function أسم الأسلوب()
    	{
    		// أكواد الأسلوب
    	}
    }
    ?>
    

    الأن نقوم بتحديد أساليب الفئه textBox وهذه الأساليب تقتصر علي الداله display لعرض المربع النصي ،  وبالتالي أصبحت الفئه متكامله كما بالشكل التالي :

    <?php
    class textBox
    {
    	public $message;
    	protected $width = 150;  
    
    	public function display()
    	{
    		echo
    		'
    <div width="' . $this->width . '">'
    		. $this->message . '</div>
    ';
    	}
    }
    ?>

    الأن أصبح الكلاس متكامل ولكن ماذا عني كلمه this وكيف نستطيع إستخدام الكلاس ؟ هذا سوف نتناوله في التدوينه القادمه بإذن الله .

    والسلام عليكم ورحمه الله

    الدروس السابقه في هذه الدوره :
    مقدمه دوره البرمجه كائنيه التوجه
    الصلاحيات Visibility

    Bookmark and Share

     
    • Ben.Fat7i 5:39 صباحًا on 21 مارس 2009 رابط دائم

      السلام عليكم

      أخى العزيز محمد أولا اشكرك الشرح أكثر من ممتاز اللهم ما اجعل هذا فى ميزان حسناتك

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

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

      مثال : الفئه ( class )

      و متشكر مقدما و بالتوفيق دائما

    • maher 11:27 صباحًا on 13 مايو 2009 رابط دائم

      السلام عليكم الاخ محمد اشكرك جزيلا الشكر على الجهد المبذول ونتمنى المزيد

    • phpreference 6:25 مساءً on 16 يونيو 2009 رابط دائم

      @Ben.Fat7
      بإذن الله سوف أخذ ملاحظتك في الحسبان عند كتابه تدوينات أخري

      @maher
      شكراً لك أخي الكريم

  • phpreference 1:16 PM on 31 January 2009 رابط دائم | رد  

    ما الجديد في PHP 5.3 – الجزء الأول 

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

    علي الرغم من أن PHP 5.3 مازالت في الإصدار Beta لكن رأيت أن أضع هذه التدوينه لتعريف المبرمجين العرب بأحدث الخصائص الجديده المتوفره في هذا الإصدار الرائع من PHP والذي يتضمن العديد من الخصائص التي كانت مقرر توافرها في PHP 6

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

    Late Static Bindings
     لنستطيع فهم هذه الخاصيه سوف ننشئ كلاس A وكلاس B التابع لكلاس A

    <?php
    class A {
        public static function who() {
            echo __CLASS__;
        }
        public static function test() {
            self::who();
        }
    }
    
    class B extends A {
        public static function who() {
             echo __CLASS__;
        }
    }
    
    B::test();
    ?>
    

    ماذا تتوقع نتيجه تنفيذ الإسكربت ؟ طبعاً سيقوم بطباعه A لماذا ؟ لأن أي شئ يعرف كـ static سيتم تنفيذه في مكانه أي داخل كلاس حتي لو إستدعيناه من الكلاس B  لأن static لا تعترف بقواعد الوراثه أي يتم تنفيذه بمعزل عن السياق context .

    إذن ما الجديد في PHP 5.3 ؟ الجديد هو وضع كلمه static ليتم التنفيذ داخل السياق

    <?php
    class A {
        public static function who() {
            echo __CLASS__;
        }
        public static function test() {
            // لاحظ وضع كلمه static بدلاً من self
    	static::who();
        }
    }
    
    class B extends A {
        public static function who() {
             echo __CLASS__;
        }
    }
    
    B::test();
    ?>
    

    ماذا تتوقع الأن ؟ سيتم طباعه لأننا إستخدمنا  static بدلاً من self ليتم تنفيذ الداله في السياق وليس في مكان تعريفها

    داله  __callStatic
    هذه الداله مثل داله call__ المتواجده من قبل في PHP وتنفذ عند إستدعاء داله غير موجوده ولكن هذه الداله تنفذ عند إستدعاء داله static غير موجوده 

    لهذه الداله أيضاً بارمتران الأول إسم الداله  المستدعاه والثاني مصفوفه تحمل بارمترات الداله المستدعاه

    <?php
    class MethodTest {
    	/**  As of PHP 5.3.0  */
    	public static function __callStatic($name, $arguments) {
    		// to prefix your methods
    		$newName = 'My' . $name;
    		call_user_func_array(
    			array('MethodTest', $newName),
    			$arguments );
    	}
    
    	public function MyRunTest($param) {
    		echo $param;
    	};
    
    }
    // لا حظ أن هذه الداله ليس لها وجود
    MethodTest::RunTest('أهلاً');
    // نتيجه الأسكربت : طباعه أهلاُ
    ?>
    

    Namespaces

    سنتناولها في تدوينه قادمه نظراً لأنها تحتاج إلي كثير من الشرح

    ملحوظه : لكي تفهم هذه التدوينه وتكملتها القادمه يجب أن تكون ملم بقواعد OOP .

    المراجع :
    http://www.php.net/docs.php

    أترككم في رعايه الله

     
    • تركي 3:03 مساءً on 9 مارس 2009 رابط دائم

      شكرا لك اخي وفقك الله لنشر علمك وحفظك من كل سوء وشر اللهم آمين ،،

      تقبل مروري واحترامي لك ،،

c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
رد
e
تحرير
o
Show/Hide comments
t
العودة لأعلى
l
Go to login
h
Show/Hide help
shift + esc
إلغاء