Если вы посмотрите, как symfony создает пользовательский скелет задачи (./symfony generate:task yourTaskName
), вы увидите код, который выглядит следующим образом, внутри функции execute:
protected function execute([..])
{
$databaseManager = new sfDatabaseManager($this->configuration);
$connection = $databaseManager->getDatabase($options['connection'])->getConnection();
[..]
Проблема с этим кодом заключается в том, что он использует конфигурацию по умолчанию, но если вы знаете, какое соединение вы хотите открыть (проверьте database.yml
или schema.yml
, чтобы выяснить имя), это должно быть действительно легко, с кодом, который выглядит следующим образом:
protected function configure()
{
$databaseManager = new sfDatabaseManager(sfProjectConfiguration::getApplicationConfiguration('frontend', 'prod', true));
$connection = $databaseManager->getDatabase("the_name_of_your_connection")->getConnection();
[..]
Затем вы можете получить доступ к своим моделям обычным способом, например:
$myItem = Doctrine_Core::getTable('item')->find(14);
echo $myItem->getId();