其他实例设置器覆盖的类属性

时间:2016-12-21 14:32:03

标签: php

把我的头发拉出一些奇怪的行为。

基本上我有一个构建GuzzleHttp \ Client的类和一个组织数据的自定义对象,如下所示:

f => f

这一切都没问题,直到他们用// Config set-up $config = [ 'ex1' => [ 'api_key' => getenv('EX1_API_KEY'), 'org_id' => getenv('EX1_ORG_ID'), ], 'ex2' => [ 'api_key' => getenv('EX2_API_KEY'), 'org_id' => getenv('EX2_ORG_ID'), ], 'ex3' => [ 'api_key' => getenv('EX3_API_KEY'), 'org_id' => getenv('EX3_ORG_ID'), ], ]; // Initialize adapters $ex1 = new Adapter($config['ex1']); $ex2 = new Adapter($config['ex2']); $ex3 = new Adapter($config['ex3']); 完成构建,并在构造函数的这一行中用相同的$this->org = $org覆盖所有$org

// Construct connected org
$org = Organization::get($this, $args['org_id']);

$this->org = $org;

所有这一切令人沮丧的部分是,如果我分配该组织的属性而不是整个事物,则每个项目都是唯一的(例如$this->org = $org->name)。

我觉得这与我的Organization课程有关,但我不知道从哪里开始调试。可以根据请求提供更多代码/上下文,但整个代码库为on GitHub

1 个答案:

答案 0 :(得分:0)

我将我的抽象Resource类构造为Singleton模式。因此,我一次不能有多个实例(因此,Singleton),因此每次只更改同一实例的属性。