В этом примере используется платформа Magento, но я считаю, что это общий вопрос, связанный с объектно-ориентированным программированием.
Когда вызывается страница или URL-адрес API, первый экземпляр, который будет создан, будет создавать экземпляры других классов и так далее. Мне нужно изменить настройку в экземпляре одного класса (будет только один экземпляр) из другого класса.
Например, я работаю в классе Praxis_Rest_ProductsController::getAction()
и хочу сделать это:
(existing instance of Varien_Db_Adapter_Pdo_Mysql)->setDebug(true);
Я точно знаю, что класс соединения Varien_Db_Adapter_Pdo_Mysql
и что это создается уже и только один раз.
Как мне это сделать? Это возможно?
— РЕДАКТИРОВАТЬ —
@ Андрей Лудиновский ниже опубликовал отличное решение, если я знать имя объекта, но в моем случае я нахожусь в той точке кодирования, к которой это тоже не имеет отношения. Фактически это может быть 7-10 различных классов в стеке вниз по течению, где вызывается этот экземплярный объект; но я знаю, что класс был создан и только один раз по этому вопросу. В этом случае я пытаюсь найти объект $, когда все, что я знаю, это то, что это экземпляр Varien_Db_Adapter_Pdo_Mysql
Вы пробовали это просто, если я что-то упустил
if ($object instanceof Varien_Db_Adapter_Pdo_Mysql) {
$object->setDebug(true);
}
Других решений пока нет …