さまざまなコンテキスト (システム内の API) で使用される場合、オブジェクト メソッドへの何らかのアクセス制御を整理する必要があります。コード例を次に示します。
class A
{
public function doA(){}
public function doB(){}
}
class APIAClient
{
public function getA()
{
return new A();
}
}
class APIBClient {
public function getA()
{
return new A();
}
}
APIAClient では、オブジェクト A に doA() と doB() の両方のメソッドが必要ですが、APIBClient では doB() メソッドは必要ありません。
今のところ、APIBClientAProxy を実装しました (APIBCleint->getA() によって返されます)。
class APIBClientAProxy
{
private $a = new A;
public function doA()
{
$this->a->doA()
}
}
しかし、すべてのコンテキスト (つまり API) に追加のプロキシ オブジェクトを使用せずに、私の問題を解決するためのより良いパターンがあるかもしれません。特定のコンテキストで許可されているメソッドのリストを使用して魔法の __call メソッドについて考えていますが、魔法の呼び出しはドキュメントを作成するのが難しく、ドキュメントは私のアプリの大きなポイントです (API は十分にドキュメント化する必要があります)。
ありがとう!