Quantcast
Channel: انجمنهای مجید آنلاین
Viewing all articles
Browse latest Browse all 23756

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

$
0
0
متدهای زنجیره ای یا Method Chaning
در این آموزش قصد دارم نحوه ساخت متذهای زنجیره ای یا Method Chaning رو بهتون آموزش بدم.
حتمن توی استفاده از کلاسهای مختلف و فریم ورکها به متدهایی برخوردیم که به صورت زنجیره ای نوشته میشن.مثل زیر :
کد PHP:


<?php

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

?>

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


<?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:

<?php

$user 
= new User();

$user->setName "Saeed";

$user->setLname("Moqadam");

$user->findMe();

?>

که خروجی به شکل زیر میشه :
User name is Saeed and User Last Name is Moqadam
استفاده از متدهای زنجیره ای
برای ساخت متدهای زنجیره ای باید به صورت زیر عمل کنیم :
کد PHP:

<?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:

<?php

$user 
= new User();

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

?>

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

<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.";

}

}

?> 

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

$anotherMe = new ComplexPerson();

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

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

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


منبع http://phpro.ir/?p=63

Viewing all articles
Browse latest Browse all 23756

Trending Articles