متدهای زنجیره ای یا Method Chaning

آذر ۲۳, ۱۳۹۰ توسط : سعید

متدهای زنجیره ای یا Method Chaning

در این آموزش قصد دارم نحوه ساخت متذهای زنجیره ای یا Method Chaning   رو بهتون آموزش بدم.

حتمن توی استفاده از کلاسهای مختلف و فریم ورکها به متدهایی برخوردیم که به صورت زنجیره ای نوشته میشن.مثل زیر :


<?php

echo $data->find()->where(' id = 1')->orderby('id DESC')->fetch();

?>


کلاس زیر رو در نظر بگیرید :


<?php

class user

{

private $name ;

private $Lname;

public function setName($name)

{

$this->name = $name;

}

public function setLname($Lname)

{

$this->Lname = $Lname;

}

public function findMe()

{

echo "User Name is : $this->name and User Last Name is $this->Lname";

}

}

?>

برای استفاده از این کلاس به صورت زیر عمل میکنیم :

<?php

$user = new User();

$user->setName = "Saeed";

$user->setLname("Moqadam");

$user->findMe();

?>

که خروجی به شکل زیر میشه :

User name is Saeed and User Last Name is Moqadam

استفاده از متدهای زنجیره ای

برای ساخت متدهای زنجیره ای باید به صورت زیر عمل کنیم :

<?php

class user

{

private $name ;

private $Lname;

public function setName($name)

{

$this->name = $name;

return $this;

}

public function setLname($Lname)

{

$this->Lname = $Lname;

return $this;

}

public function findMe()

{

echo "User Name is : $this->name and User Last Name is $this->Lname";

}

}

?>

که به صورت زیر میشه ازش استفاده کرد  :

<?php

$user = new User();

$user->setName("Saeed")->setLname("Moqadam")->findMe();

?>

دیدید که برای ساخت چنین متدهایی کافیه در آخر هر متد یک شیء از کلاستون رو با استفاده از کلمه کلیدی  $this رو برگردونید.

متدهای زنجیره ای درکلاسهای چندگانه

اگر توی یک پروژه چندتا کلاس مختلف دارین Method Chaning میتونه کار شما رو راحتتر کنه.برای این کار به کلاس زیر دقت کنید :

<php

class ComplexPerson

{

public function setName($Name)

{

return new FindNames($Name);//Returns object of FindNames class.

}

public function setAge($Age)

{

$this->age = $Age;

return new FindAges($Age);//Returns object of FindAges class.

}

}

class FindNames

{

private $name;

public function __construct($n)

{

$this->name = $n;

}

public function printName()

{

echo "I am ".$this->n.".";

}

}

class FindAges

{

public function __construct($a)

{

$this->age = $a;

}

public function printAge()

{

echo "I am ".$this->age." years old.";

}

}

?>

برای استفاده از این کلاس به صورت زیر عمل میکنیم :

$anotherMe = new ComplexPerson();

$anotherMe->setName("Saeed")->printName();

$anotherMe->setAge("24")->printAge();

میبینید که برای این کار فقط کافیه یک شیء از کلاس مورد نظر رو برگردونیم.

موفق باشید

بازدید : ۴۸۰۰

امیر
آذر ۲۴, ۱۳۹۰ @ ۱:۰۹ ق.ظ

سلام
آقا دم شما گرم عالی بود.

پاسخ دادن
آذر ۲۴, ۱۳۹۰ @ ۷:۴۲ ق.ظ

هو،
سلام علیکم،

خوب بود دوست عزیز.

یا حق ج

پاسخ دادن
معراج
آذر ۲۶, ۱۳۹۰ @ ۱۲:۵۹ ب.ظ

دمت گرم؛ جالب و البته مفید بود.

پاسخ دادن
بهمن ۱۸, ۱۳۹۰ @ ۳:۲۵ ب.ظ

خیلی خیلی ممنونم سعید جان. من خیلی دنبال این گشتم که اینجا پیداش کردم. سپاسگذارم بی نهایت.

پاسخ دادن
    سعید
    بهمن ۱۸, ۱۳۹۰ @ ۳:۳۰ ب.ظ

    خواهش میکنم.لطف داری

    پاسخ دادن
دی ۹, ۱۳۹۱ @ ۸:۰۵ ب.ظ

agha merc, ino nmidoonestam.
tashakor

پاسخ دادن

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


*