سلام وقتتون بخیر
من چند وقته درگیر اینم که یک کلاس رو طوری بنویسم که اینجوری بشه باهش کار کرد.(مثله لاراول)
ClassName::func1()->func2()->func3();
هرچی گوگل کردم به نتیجه نرسیدم.
کسی از دوستان میتونه کمکم کنه؟
پ.ن: تمامی فانکشن ها داینامیک هستند. درواقع اولین فانکشن(که داینامیکه) رو میشه به صورت استاتیک فراخوانی کرد دقیقا مثله query builder های لاراول.
پ.ن:دوستان توجه داشتن باشن منظور بنده method chaining نیست سوال من در رابطه با فراخوانی کلاس داینامیک توسط شیوه استاتیک است.
سلام، آموزش شی گرایی در راکت رو ببینید متوجه خواهید شد
<?php
class MyTest {
public function Hello() {
echo "Hello ";
return $this;
}
public function World() {
echo "World!";
}
}
$h = new MyTest();
$h->Hello()->World();
?>
این کار با استفاده از Magic Method ها در PHP انجام میشه. از دو متد call__ و call_static__ استفاده میشه. اولی برای توابع معمولی که در متن کلاس موجود نیستند و دومی برای توابع استاتیکی که در متن کلاس موجود نیستند.
در یکی از گفتگوها، این مطلب رو بصورت کامل توضیح دادم.
https://roocket.ir/discuss/2959
موفق باشید
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟