Я работаю над библиотекой, и для простоты использования и читабельности я хотел объединить методы в один интерфейс. У меня проблема с именованием методов.
Если, например, у меня есть
$obj->BaseMethod1()->Add();
Я также хочу иметь
$obj->BaseMethod2()->Add();
Что было бы совсем по-другому.
Я думаю, что смогу сделать это sh, сделав следующее:
private string $func;
private function BaseMethod1Add() {
//Perform Action
return $this;
}
private function BaseMethod2Add() {
//Perform Some Different Action
return $this;
}
public function BaseMethod1() {
$this->func = "BaseMethod1";
return $this;
}
public function BaseMethod2() {
$this->func = "BaseMethod2";
return $this;
}
public function Add() {
switch ($this->func) {
case 'BaseMethod1':
BaseMethod1Add();
case 'BaseMethod2':
BaseMethod2Add();
}
}
Есть ли лучший или более чистый способ достижения sh это?