PHP - Вернуть указанные c методы из того же класса - PullRequest
0 голосов
/ 13 июля 2020

Я создаю определенные c классы в своем проекте, и я хотел бы знать, как я могу вернуть некоторые методы в том же классе.

Я знаю, что могу создать новый класс в новом файл для возврата новых методов на основе класса, который его вызвал, однако мне нужно будет передать много данных этому новому классу. Есть ли способ вернуть тот же класс, но с ограничением некоторых методов?

<?php

class Service
{
    private $data;

    private $fileName;

    public static function init()
    {
        return new Service();
    }

    public function postData($data)
    {
        $this->data = $data;

        // return new Service(); (can be getData() or checkData())
    }

    public function getData()
    {
        return $this->data;
    }

    public function checkData()
    {
        // Do some stuff

        // return new Service(); (only getData())
    }
}

Это может случиться:

Service::init()->postData($data)->checkData();

Service::init()->postData($data)->checkData()->getData();

Service::init()->postData($data)->getData();

Этого не может быть:

Service::init()->postData($data)->checkData()->checkData()->getData();

Service::init()->postData($data)->checkData()->postData()->getData();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...