私のプロジェクト全体は、基本的に 2 つの部分に分かれています。
- 芯
- ヘルパー クラス
ユーザーはカスタム クラスを作成し、ヘルパー クラスのメソッドを次のように使用します。
\Project\System\Helpers\Class::foo();
したがって、各ヘルパー クラスのすべてのパブリック メソッドは静的として宣言されます。これを変更して、すべてのユーザー カスタム クラスが 1 つの特別なクラスを継承するようにするというアイデアを思いつきました。
class SingleBeingInheritedClass {
public function helper($class)
{
return new \Project\System\Helpers\$class; // it's just to show the idea
}
}
静的関数を呼び出す代わりに、ユーザーは次のように記述できます。
$this->helper('class')->foo();
問題は、これらのヘルパー クラスのいくつかをいくつかのコア クラス内で使用していることです。また、ヘルパーに関連するものをコア クラスに継承させたくありません。
これらのコア クラスでは、コードを長くしたり、これらのヘルパーを使用してすべてのメソッドでオブジェクトを初期化したりしたくありません。
これをどのように処理すればよいですか?それとも、ここでは静的メソッドはそれほど悪くないのでしょうか?