クラスのメソッドをカプセル化することはできますが、それを消費するクラス内に公開することができるのだろうかと思います。例えばカプセル化と継承のメソッド
class Consumer{
public function __construct($obj){
$this->obj = $obj;
}
public function doCommand(){
$this->obj->command();
}
}
class Consumed{
//I would make the constructor private, but to save space...
public function __construct(){}
private function command(){
echo "Executing command in the context of the Consumer";
}
}
$consumer = new Consumer(new Consumed);
$consumer->doCommand();
//just to reiterate, I know this throws an error
は最終的に、私が直接、単一の制御クラスのコンテキスト外で参照することができない部品を作ることができるようにしたい(JFTR、私はこのコードが間違っている知っています)。
あなたはC++の友達クラスのようなものを意味していますか? http://en.wikipedia.org/wiki/Friend_class – VolkerK
あなたはそれを双方向にすることはできません。プライベートメソッドの中に機能を隠している場合は、外部から呼び出すことはできません。 パブリックメソッドを呼び出すと、プライベートメソッドが呼び出されます。パブリックメソッドを呼び出すと、すべてのユーザーがプライベートメソッドを呼び出すことができます。 –
上記のコメントはもちろんPHPです:friendクラスは動作しますが、PHPにはそのような概念はありません。 –