عرفان محسنی
8 ماه پیش توسط عرفان محسنی مطرح شد
2 پاسخ

clean code در فانکشن های پی اچ پی

class Name
{
    private $firstname;
    private $lastname;

    public function __construct(string $firstname, string $lastname)
    {
        $this->firstname = $firstname;
        $this->lastname = $lastname;
    }
    public function setter($name, $family)
    {
        $this->firstname = $name;
        $this->lastname = $family;
    }
    public function getter()
    {
        return $this->firstname . " " . $this->lastname . "\n";
    }
}

class City{
    private $city;
    private $country;
    public function __construct(string $city , string $country)
    {           

        $this->city = $city;
        $this->country = $country;
    }
    public function setter($city, $country)
    {
        $this->city = $city;
        $this->country = $country;
    }
    public function getter()
    {
        return $this->city . "\n" . $this->country . "\n";
    }
}

class Contact
{
    private $phone;

    private $email;

    public function __construct(string $phone, string $email)
    {
        $this->phone = $phone;
        $this->email = $email;
    }

    public function setter($phone,$email)
    {
        $this->phone = $phone;
        $this->email = $email;
    }
    public function getter()
    {
        return $this->phone . "\n" . $this->email;
    }

}
class Questionnaire
{
    public function __construct(Name $name, City $city, Contact $contact)
    {
    }
}

من داشتم clean code رو توی پی اچ پی کار میکردم که به بخش کار با فانکشن ها رسیدم
تو بخش فانکشن ها گفتش که ورودی های فانکشن های ما نباید سه تا متغییر بیشتر بگیره
به همین خاطر بیایین و متغییر های شبیه به هم رو تو ی class بنویسید و بعد داخل class اصلی بیایید نمونه سازی کنید ازشون
حالا سوال من این هستش که چطوری به متغییر های داخل این کلاسی که دادم متغییر بدم
اصلا من تا همین جا که سه تا کلاس رو نوشتم و تو ورودی کلاس پرسشنامه ریختم بلد بودم به بعدش بلد نیستم که چطوری اینو ورودی بدم
با تشکر .


ثبت پرسش جدید
متین طیبی نیا
تخصص : backend
@MatinTayebi 8 ماه پیش آپدیت شد
0

سلام
خسته نباشید .
هر پراپرتی توی کلاس باید یک متتد getter و یک متتد setter داشته باشه .
مثلا برای $phone این شکلی باید باشه :

  public function getPhone()
    {
        return $this->phone;
    }

  public function setPhone($phone)
    {
    $this->phone=$phone;
    }

حالا میخوای همه ی مقدار پراپرتی ها را توی یک رشته داخل کنسول نمایش بدی باید یک متتد toString تعریف کن .
میشه اینطوری :

  public function toString()
    {
        return $this->phone . "\n" . $this->email;
    }

این شکلی می تونی به پراپرتی ها دسترسی داشته باشی


عرفان محسنی
تخصص : back-End developer
@erfanmohseni406 8 ماه پیش مطرح شد
0

@MatinTayebi
ممنونم از کمکت ولی اون چیزی که مد نظرم بود تو پیامت نیست :(


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

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