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
否(虽然这是一个很好的其他情况下的想法),它恰恰相反 - 我不知道'$ object'的命名空间。我试图这样做:'(instanceof Varien_Db_Adapter_Pdo_Mysql) - > setDebug(true);' –
@OliverWilliams嗯,我很困惑你想得到什么。你有没有对象或者你想检查$这个? –