Development

Changeset 4728

You must first sign up to be able to contribute.

Changeset 4728

Show
Ignore:
Timestamp:
07/27/07 12:42:49 (3 years ago)
Author:
mahono
Message:

* refactored query logger and fixed bug that prevented the debug toolbar to display the doctrine queries (the toolbar only finds sql queries containing 'executeQuery' or 'executeUpdate')

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • plugins/sfDoctrinePlugin/lib/sfDoctrineQueryLogger.class.php

    r4698 r4728  
    2222  public function preExecute(Doctrine_Event $event) 
    2323  { 
    24     $log = '{sfDoctrine Pre-execute} executeQuery : '.$event->getQuery(); 
    25     if ($params = $event->getParams()) 
    26     { 
    27       $log .= ' - ('.implode(', ',$params) . ' )'; 
    28     } 
    29     sfContext::getInstance()->getLogger()->log($log); 
    30     $sqlTimer = sfTimerManager::getTimer('Database (Doctrine)'); 
     24    $this->sfLogQuery('{sfDoctrine Execute} executeQuery : ', $event); 
    3125  } 
    32    
     26 
    3327  public function postExecute(Doctrine_Event $event) 
    3428  { 
    35     sfTimerManager::getTimer('Database (Doctrine)')->addTime(); 
     29    $this->sfAddTime(); 
    3630  } 
    37    
     31 
    3832  public function postPrepare(Doctrine_Event $event) 
    3933  { 
    40     sfTimerManager::getTimer('Database (Doctrine)')->addTime(); 
     34    $this->sfAddTime(); 
    4135  } 
    4236 
    4337  public function preStmtExecute(Doctrine_Event $event) 
    4438  { 
    45     $log = '{sfDoctrine Pre-execute} executePreparedQuery : '.$event->getQuery(); 
    46     if ($params = $event->getParams()) 
    47     { 
    48       $log .= ' - ('.implode(', ',$params) . ' )'; 
    49     } 
    50     sfContext::getInstance()->getLogger()->log($log); 
    51     $sqlTimer = sfTimerManager::getTimer('Database (Doctrine)'); 
     39    $this->sfLogQuery('{sfDoctrine Statement} executeQuery : ', $event); 
    5240  } 
    53    
     41 
    5442  public function postStmtExecute(Doctrine_Event $event) 
    5543  { 
    56     sfTimerManager::getTimer('Database (Doctrine)')->addTime(); 
     44    $this->sfAddTime(); 
    5745  } 
    5846 
    5947  public function preQuery(Doctrine_Event $event) 
    6048  { 
    61     sfContext::getInstance()->getLogger()->log('{sfDoctrine Query} executeQuery : '.$event->getQuery()); 
     49    $this->sfLogQuery('{sfDoctrine Query} executeQuery : ', $event); 
     50  } 
     51 
     52  public function postQuery(Doctrine_Event $event) 
     53  { 
     54    $this->sfAddTime(); 
     55  } 
     56 
     57  protected function sfLogQuery($message, $event) 
     58  { 
     59    $message .= $event->getQuery(); 
     60 
     61    if ($params = $event->getParams()) 
     62    { 
     63      $message .= ' - ('.implode(', ', $params) . ' )'; 
     64    } 
     65 
     66    sfContext::getInstance()->getLogger()->log($message); 
    6267    $sqlTimer = sfTimerManager::getTimer('Database (Doctrine)'); 
    6368  } 
    64    
    65   public function postQuery(Doctrine_Event $event
     69 
     70  protected function sfAddTime(
    6671  { 
    6772    sfTimerManager::getTimer('Database (Doctrine)')->addTime(); 

The Sensio Labs Network

Since 1998, Sensio Labs has been promoting the Open-Source software movement by providing quality web application development, training, consulting.
Sensio Labs also supports several large Open-Source projects.