حسین
5 سال پیش توسط حسین مطرح شد
2 پاسخ

فراخوانی متد داینامیک به صورت استاتیک شبیه لاراول در php

سلام وقتتون بخیر
من چند وقته درگیر اینم که یک کلاس رو طوری بنویسم که اینجوری بشه باهش کار کرد.(مثله لاراول)
ClassName::func1()->func2()->func3();
هرچی گوگل کردم به نتیجه نرسیدم.
کسی از دوستان میتونه کمکم کنه؟
پ.ن: تمامی فانکشن ها داینامیک هستند. درواقع اولین فانکشن(که داینامیکه) رو میشه به صورت استاتیک فراخوانی کرد دقیقا مثله query builder های لاراول.
پ.ن:دوستان توجه داشتن باشن منظور بنده method chaining نیست سوال من در رابطه با فراخوانی کلاس داینامیک توسط شیوه استاتیک است.


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش مطرح شد
0

سلام، آموزش شی گرایی در راکت رو ببینید متوجه خواهید شد

<?php
class MyTest {
    public function Hello() {
        echo "Hello ";
        return $this;
    }

    public function World() {
        echo "World!";
    }
}

$h = new MyTest();
$h->Hello()->World();
?>

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش آپدیت شد
2

@Phoenixco1999

این کار با استفاده از Magic Method ها در PHP انجام میشه. از دو متد call__ و call_static__ استفاده میشه. اولی برای توابع معمولی که در متن کلاس موجود نیستند و دومی برای توابع استاتیکی که در متن کلاس موجود نیستند.

در یکی از گفتگوها، این مطلب رو بصورت کامل توضیح دادم.
https://roocket.ir/discuss/2959
موفق باشید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام