从 Symfony 1.4 任务记录 Doctrine 查询

Ian*_*ory 5 php mysql doctrine symfony1

我希望 Symfony 将我的任务之一执行的 Doctrine SQL 查询记录到日志文件中,就像 Web 调试工具栏对非 cli 代码所做的那样。这可能吗?

  • Symfony 版本:1.4.12
  • 教义版本:1.2.4

这是任务的一些示例代码。我希望 SELECT 查询以与从操作中调用它的方式类似的方式记录。

class exampleTask extends sfBaseTask
{
        protected function configure()
        {
                parent::configure();

                $this->namespace        = 'test';
                $this->name             = 'example';
        }

        protected function execute($arguments = array(), $options = array())
        {
                $databaseManager = new sfDatabaseManager($this->configuration);

                $users = Doctrine_Core::getTable('SfGuardUser')
                        ->createQuery('s')
                        ->select('s.first_name')
                        ->execute();

                foreach($users as $user) {
                        print $user->getFirstName()."\n";
                }
        }
}
Run Code Online (Sandbox Code Playgroud)

flu*_*flu 5

尝试使用全局任务选项--trace(快捷方式-t)。喜欢:

./symfony --trace namespace:task
Run Code Online (Sandbox Code Playgroud)

它在执行数据库查询时记录它们。

不要忘记在您运行任务的应用程序的 settings.yml 中启用日志记录。

因此,如果您在dev后端环境中运行任务,您将编辑apps/backend/config/settings.yml:

dev:
  .settings:
    logging_enabled:        true
Run Code Online (Sandbox Code Playgroud)

请注意,这还会记录异常的堆栈跟踪,如果您需要调试任务,这也可能非常有用。