Принятый ответ здесь не является хорошим способом получить объект db, он должен быть установлен в application.ini, как вы делали изначально.
Если вы хотите получить еще один экземпляр объекта db, у вас есть несколько вариантов; вы можете сделать, как следует @RockyFord, или вы можете получить объект БД из любого контроллера, как это: -
$db = $this->getInvokeArg('bootstrap')->getResource('db');
Если вы хотите пойти дальше и иметь доступ к connection details (я не могу себе представить, почему бы нужно их снова), то вы можете получить их от объекта БД, как это: -
$dbConfig = $db->getConfig();
или действительно: -
$dbConfig = $this->getInvokeArg('bootstrap')->getResource('db')->getConfig();
Который даст вам массив, содержащий данные соединения, вы можете попробовать это и сделать var_dump($dbConfig);
, чтобы увидеть подробности.
Это гораздо более надежный способ доступа к объекту db, если вам нужно, хотя я бы очень долго смотрел на ваш общий дизайн кода, если вам нужно сделать это в нескольких местах, особенно если вы доступ к деталям соединения, как описано здесь.
Что значит «из другого файла»? – Songo