Ian*_*ory 5 php mysql doctrine symfony1
我希望 Symfony 将我的任务之一执行的 Doctrine SQL 查询记录到日志文件中,就像 Web 调试工具栏对非 cli 代码所做的那样。这可能吗?
这是任务的一些示例代码。我希望 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)
尝试使用全局任务选项--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)
请注意,这还会记录异常的堆栈跟踪,如果您需要调试任务,这也可能非常有用。