Я создаю определенные 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();