私の子クラスと私のシングルトンクラス:PHPクラスは、そのプロパティにシングルトンとのアクセスを拡張し
class Api
{
protected static $instance = null;
protected $baseUrl = 'http://google.com';
protected $clientId;
protected $clientSecret;
public static function getInstance(string $clientId, string $clientSecret)
{
if (self::$instance === null) {
self::$instance = new self($clientId, $clientSecret);
}
return self::$instance;
}
protected function __construct(string $clientId, string $clientSecret)
{
$this->clientId = $clientId;
$this->clientSecret = $clientSecret;
}
public function setBaseUrl(string $baseUrl)
{
$this->baseUrl = $baseUrl;
}
public function user()
{
return new User();
}
}
class User extends Api
{
public function me()
{
var_dump($this->baseUrl); // HERE
}
}
は、私は次のようにそれを使用したいと思います:
$api = Api::getInstance('abc', 'def');
$api->setBaseUrl('http://google.dev');
$api->user()->me();
をどのようにこのスクリプトを呼び出しme()
とhttp://google.dev
の値は、User
?
また、のコンストラクタパラメータを処理するためにUser
を設定するにはどうすればよいですか?
私の例でうまく実装されていない既存のパターンを使用しようとしますか?
私はこの問題を理解しています。どのように$ this-> baseUrlの良い値を持つように私のユーザークラスに伝える?実際には、親ではなく子クラスをインスタンス化することで簡単にできますが、親と仕事をすることを支持するかどうかを微調整する方法はありますか? – Syl
右 - 私は自分の答えを更新しました。 – MacPrawn