因此,我正在使用一個設置類來擴展一個基本設置類,它將類似於「全局設置」。有幾個服務,每個服務都有自己的設置類,它擴展了抽象基本設置類。抽象基本設置類對應於服務之間共享的設置。首先,我將在下面的例子來說明,然後我會定義問題:php反射得到的屬性沒有得到基類的屬性
例如:
abstract class BaseSettings {
protected $settingA;
protected $settingB;
}
class MyServiceSettings extends BaseSettings {
private $settingC;
public $settingD;
}
問題:
如果我創建一個ReflectionClass例如像這樣..
$reflect = new ReflectionClass($this);
..從MyServiceSettings類或BaseSettings類(因爲顯然你不能有一個抽象類的實例),$reflect->getProperties()
will al方式返回MyServiceSettings和BaseSettings的屬性(我猜這是合適的,因爲我們真的在使用一個具體的類)
現在我確信我可以創建一個空的類來擴展抽象BaseClass以找出哪些屬性去了哪裏(或者只是擺脫了抽象並創建了一個BaseClass的實例),但是這看起來相當混亂,所以我想知道是否有更優雅的方式來確定哪些屬性屬於父類哪些屬於孩子班?
如果你很好奇我爲什麼要這樣做 - 爲了增加恢復功能,我將序列化爲.json文件,以便可以從上次成功完成的最後一個原子操作繼續。爲什麼我必須這樣做 - 限制環境。