2016-09-02 29 views
0

在這個例子中,使用的平臺是Magento,但我相信這是一個與面向對象編程相關的通用問題。如何找到類的現有實例的名稱空間

當調用頁面或API URL時,要實例化的第一個類將實例化其他類,等等。我需要從另一個類中的一個類的實例(只有一個實例)中更改設置。

例如,我在Praxis_Rest_ProductsController::getAction()類我的工作,並希望這樣做:

(existing instance of Varien_Db_Adapter_Pdo_Mysql)->setDebug(true); 

我知道肯定是連接類是Varien_Db_Adapter_Pdo_Mysql並且這已經實例化,只有一次。

我該怎麼做?這可能嗎?

- 編輯 - 下面 @Andrej Ludinovskov發佈了一個很好的解決方案,如果我知道對象名稱,但對我來說,我在現場,其中有沒有關係過於它的編碼。事實上,它可能是堆棧下游的7-10個不同類,其中實例化對象被調用;但是我確實知道這個類已經被實例化,並且只有一次。在這種情況下,我試圖找到$對象時,我所知道的是,它的Varien_Db_Adapter_Pdo_Mysql

回答

0

的情況下你試試這個簡單,如果還是我錯過的東西:

if ($object instanceof Varien_Db_Adapter_Pdo_Mysql) { 
    $object->setDebug(true); 
} 
+0

否(雖然這是一個很好的其他情況下的想法),它恰恰相反 - 我不知道'$ object'的命名空間。我試圖這樣做:'(instanceof Varien_Db_Adapter_Pdo_Mysql) - > setDebug(true);' –

+0

@OliverWilliams嗯,我很困惑你想得到什麼。你有沒有對象或者你想檢查$這個? –

相關問題