可以使用__get,__call將調用重定向到某些屬性/函數。「__class magic method」(通過自定義代碼調用對類名的引用)
有沒有辦法做到這一點的類?
我想將代碼中some_class_name的所有提及轉換爲MY_VERSION_some_class_name(不僅對於一個類,它是模式)。
如果方法/屬性是此重命名策略的目標,這很容易。
你能想到一種方法來實現它在PHP中的類嗎?
編輯:我需要這個參考不同情況下類的不同變體。我需要一個類名來解析這個類的不同變體,這取決於運行時已知的條件,並且貫穿整個會話。
謝謝
p.s. 如果您好奇我爲什麼要這樣做,請看Maintaining variants of an application
+1用於推薦工廠,而不是其他一些嚴酷的方法。無論如何,工廠經常變得有用。 – 2010-11-12 02:48:45
這是一個好主意,但會迫使我重構一個大代碼。還會看起來很醜 - 考慮每一個類似於$ factory-> classVariant('classname')的類名稱,而不是簡單的類名 – shealtiel 2010-11-12 02:48:54
@gidireich通常你會做'$ factory-> getMyModule()'。當你創建'$ factory'時會發生什麼,你創建了一個擁有你想要的類的組合的工廠類。 – 2010-11-12 02:50:31