2870
مشاهدة
[4] إنشاء الكائنات و إسناد القيم في PHP
[4] إنشاء الكائنات و إسناد القيم في PHP
تفاصيل الحلقة
  • المدة : ١١ دقيقة
  • المستوى : متقدم
 

مقدمة :

الحلقة الرابعة من سلسلة بناء تطبيقات الويب بلغة بي إتش بي عن كيفية إنشاء الفئات وتكديس ( تعبئة ) البيانات في الكائنات بشكل سريع حين إنشائها ، قبل البدء لمتابعة الحلقات السابقة عبر الروابط
الحلقة الأولى
أساسيات لغة بي اتش بي
برمجة الكائنات


أولاً: بناء الفئة

قم ببناء فئة التدوينة وعرف بها متغيرات خاصة للتدوينة كالرقم المفتاحي و العنوان والمحتوى و إسم الكاتب ، وجميع هذه الخواص ( المتغيرات ) تحمل صلاحية خاصة private <?php class Post { private $title ; private $body; private $author; private $id; } ?>


ثانياً: دالة البناء __construct()

هي أحدى الدوال السحرية في لغة بي اتش بي وهي أول دالة يتم استدعائها حين إنشاء كائن من فئة ويستفاد منها في إسناد القيم الإبتدائية للمتغيرات حين إنشاء الكائنات او القيام بأي عملية ممكن ان نحتاج لعملها عندك انشاء الكائن وقبل استخدامه في أي شي آخر ، و يكتب بالصيغة التالية : <?php class Post { private $title ; private $body; private $author; private $id; public function __construct(array $options = null){ // the first method called when new object initiated } } ?>
“ يتم إستدعاء دالة البناء حين إنشاء الكائن و يمكن تمرير المتغيرات لها عبر وضعها بين أقواس إسم الفئة حين على الشكل التالي "
$object = new Post("my Variable");

ثالثاً: دالة الهدم __desctruct()

هي أيضا إحدى الدوال السحرية في لغة بي إتش بي وهي أخر دالة يتم استدعائها عندك انتهاء دورة حياة الكائن في التطبيق .وتكتب بالصيغة التالية : <?php class Post { private $title ; private $body; private $author; private $id; public function __construct(array $options = null){ // دالة البناء تستدعى كأول دالة حين الانشاء } public function __destruct(){ // دالة الهدم } } ?>


رابعاً: بناء دوال الخواص ( setter and getter )

تبنى الخواص بهدف الحصول على قيمة المتغيرات ذات الصلاحيات الخاصة و المحمية بشكل غير مباشر ، وتحمل دوال الخواص صلاحية عامة public وذلك لحاجتنا لإستدعائها بإستخدام اسم الكائن <?php public function setId($value){ $this->id = $value; } public function getId(){ return $this->id; } public function setTitle($value){ $this->title=$value; } public function getTitle(){ return $this->title; } . . . ?>


خامساً: المصفوفة المفتاحية

المصفوفات في لغة بي اتش بي تتصف بمرونة كبيرة جدا ، حيث يمكننا صناعة مصفوفات على شكل مفتاح وقيمة ، ويكون الوصول لها بإسم المصفوفة و استخدام المفتاح كقيمة مفتاحية في المصفوفة . وكما تتعدد أشكال جملة التكرار للوصول ، للبيانات وقد أشرت سابقاً إلى تعرضنا بشكل أعمق للمصفوفات ، أشرحها بشكل سريع هنا : <?php // المصفوفة الأحادية $normal = array(1,"Mohammed",2); foreach($normal as $row): echo $row." - "; endforeach; // output : 1 - Mohammed - 2 foreach($normal as $key=>$row){ // $key = index value of the element echo $key." => ".$row." "; } // output : 0 => 1 1 => Mohammed 2 => 2 // المصفوفة الفتاحية $array = array('index1'=>'value1' , 'index2'=> 'value2'); foreach($array as $index => $value ) echo $key." => ".$row." "; // output : index1 => value1 index2=>value2 ?>


سادساً: إنشاء الكائن بالبيانات

لابد من إرسال مصفوفة مفتاحية تحمل إسم المتغير على سبيل المثال وقيمته إلى دالة البناء ، وفي دالة البناء ببناء جملة تكرار لقراءة المصفوفة وثم استدعاء دالة الـ set الخاصة بذلك المتغير بشكل تلقائي و ارسال القيمة الجديدة لها لتقوم بدورها باسناد القيمة لذلك المتغير ، ويتم ذلك عن طريق دمج المقطع set مع المفتاح في المصفوفة المرسلة لينتج لنا اسم الدالة مخزنا في متغير وثم نقوم بإستدعاء الدالة على الشكل التالي : <?php $post = new Post(array('Id'=>10,'Title'=>'Magic Functions')); echo $post->getId(); echo "
"; echo $post->getTitle(); ?>


الناتج النهائي للفئة :

<?php class Post { private $title ; private $body; private $author; private $id; public function __construct(array $options = null){ // the first method called when new object initiated if($options != null && is_array($options)){ $this->setOptions($options); } } public function setOptions($options){ $method = ""; foreach($options as $key=>$value){ $method = "set".$key; // auto call for setId , setTitle .. $this->$method($value); } } public function setId($value){ $this->id = $value; } public function getId(){ return $this->id; } public function setTitle($value){ $this->title=$value; } public function getTitle(){ return $this->title; } public function setAuthor($value){ $this->author = $value; } public function getAuthor(){ return $this->author; } public function setBody($value){ $this->body = $value; } public function getBody(){ return $this->body; } public function __destruct(){ // the final method } } $post = new Post(array('Id'=>10,'Title'=>'Magic Functions')); echo $post->getId(); echo "
"; echo $post->getTitle(); ?>


خلاصة :

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

الكاتب : محمد عبد اللطيف

مهندس حاسوب يعمل في مجال تطوير تطبيقات الويب بخبرة سنوات بلغات مختلفة ، إبتدأ حياته المهنية في الويب و مازال عاملا فيه.

تابع mjebrini على تويتر

Facebook Twitter RSS

كن صديقاً وتابعنا

فريق EnvCasts.Me فريق اجتماعي ، نحن نتواصل بتويتات عبر تويوتر وفيس بوك ، تعرف إلينا

تسجيل الدخول بحساب تويتر

أهلا عزيزي الزائر
تسجيل الدخول بتويتر

إبق على إطلاع بكل جديد

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

تابعنا عبر الفيس بوك

تحديثاتنا على تويتر

إعلانات عبر جوجل