コード例 #1
0
ファイル: DbAbstract.php プロジェクト: Roave/issues
 /**
  * Set the default database adapter
  *
  * @param Zend_Db_Adapter_Abstract $adapter
  *
  * @return void
  */
 public static function setDefaultAdapter(Zend_Db_Adapter_Abstract $adapter)
 {
     self::$_defaultAdapter = $adapter;
 }
コード例 #2
0
ファイル: Issue.php プロジェクト: Roave/issues
 protected function _rowToModel($row, $class = false)
 {
     if (array_key_exists('project.project_id', $row)) {
         $row['project'] = new Default_Model_Project(array('project_id' => $row['project.project_id'], 'name' => $row['project.name'], 'private' => $row['project.private']));
         unset($row['project.project_id'], $row['project.name'], $row['project.private']);
     }
     if (array_key_exists('created_by.user_id', $row)) {
         $row['created_by'] = new Default_Model_User(array('user_id' => $row['created_by.user_id'], 'username' => $row['created_by.username'], 'password' => $row['created_by.password'], 'last_login' => $row['created_by.last_login'], 'last_ip' => $row['created_by.last_ip'], 'register_time' => $row['created_by.register_time'], 'register_ip' => $row['created_by.register_ip']));
         unset($row['created_by.user_id'], $row['created_by.username'], $row['created_by.password'], $row['created_by.last_login'], $row['created_by.last_ip'], $row['created_by.register_time'], $row['created_by.register_ip']);
     }
     if (array_key_exists('assigned_to.user_id', $row) && $row['assigned_to.user_id'] != null) {
         $row['created_by'] = new Default_Model_User(array('user_id' => $row['assigned_to.user_id'], 'username' => $row['assigned_to.username'], 'password' => $row['assigned_to.password'], 'last_login' => $row['assigned_to.last_login'], 'last_ip' => $row['assigned_to.last_ip'], 'register_time' => $row['assigned_to.register_time'], 'register_ip' => $row['assigned_to.register_ip']));
     }
     unset($row['assigned_to.user_id'], $row['assigned_to.username'], $row['assigned_to.password'], $row['assigned_to.last_login'], $row['assigned_to.last_ip'], $row['assigned_to.register_time'], $row['assigned_to.register_ip']);
     return parent::_rowToModel($row);
 }
コード例 #3
0
ファイル: Profiler.php プロジェクト: Roave/issues
 public static function _toHTML()
 {
     $timers = self::getTimers();
     $out = '<div id="profiler-section" style="z-index:10000;bottom:5px;left:5px;opacity:1;background:white;width:auto;padding:5px;border:2px solid #CCC;" onmouseover="this.style.opacity=1" onmouseout="this.style.opacity=1">';
     $out .= '<pre>Memory usage:<br/> real: ' . memory_get_usage(true) . ', emalloc: ' . memory_get_usage() . '</pre>';
     $out .= '<table border="1" cellspacing="0" cellpadding="2" width="100%">';
     $out .= '<tr><th>Code Profiler</th><th>Time</th><th>Cnt</th><th>RealMem</th><th>Emalloc</th></tr>';
     foreach ($timers as $name => $timer) {
         $sum = self::fetch($name, 'sum');
         $count = self::fetch($name, 'count');
         $realmem = self::fetch($name, 'realmem');
         $emalloc = self::fetch($name, 'emalloc');
         if ($sum < 0.001 && $count < 10 && $realmem == 0) {
             continue;
         }
         $out .= '<tr><td align="left">' . $name . '</td><td>' . number_format($sum, 4) . '</td><td>' . $count . '</td><td>' . number_format($realmem) . '</td><td>' . number_format($emalloc) . '</td></tr>' . '</td></tr>';
     }
     $out .= '</table>';
     $profiler = Issues_Model_Mapper_DbAbstract::getDefaultAdapter()->getProfiler();
     $totalTime = $profiler->getTotalElapsedSecs();
     $queryCount = $profiler->getTotalNumQueries();
     $longestTime = 0;
     $longestQuery = null;
     if ($profiler->getTotalNumQueries() > 0) {
         foreach ($profiler->getQueryProfiles() as $query) {
             if ($query->getElapsedSecs() > $longestTime) {
                 $longestTime = $query->getElapsedSecs();
                 $longestQuery = $query->getQuery();
             }
         }
         $out .= '<table border="1" cellspacing="0" cellpadding="2" width="100%">';
         $out .= '<tr><td width="40%"><b>Queries executed:</td><td>' . $queryCount . '</td></tr>';
         $out .= '<tr><td><b>All queries length</td><td>' . $totalTime . '</td></tr>';
         $out .= '<tr><td><b>Average query length:</td><td>' . $totalTime / $queryCount . '</td></tr>';
         $out .= '<tr><td><b>Queries per second:</td><td>' . $queryCount / $totalTime . '</td></tr>';
         $out .= '<tr><td valign="top"><b>Longest query:</td><td>' . $longestQuery . '</td></tr>';
         $out .= '<tr><td><b>Longest query time:</td><td>' . $longestTime . '</td></tr>';
         $out .= '</table>';
         $out .= '<table border="1" cellspacing="0" cellpadding="2" width="100%">';
         $out .= '<tr><th>Query</th><th>Elapsed Time</th></tr>';
         foreach ($profiler->getQueryProfiles() as $query) {
             $out .= '<tr><td>';
             $out .= $query->getQuery();
             $out .= '</td><td>';
             $out .= $query->getElapsedSecs();
             $out .= '</td></tr>';
         }
         $out .= '</table>';
     } else {
         $out .= "No database hits... everything loaded from cache.";
     }
     $out .= '</div>';
     return $out;
 }
コード例 #4
0
ファイル: Bootstrap.php プロジェクト: Roave/issues
 /**
  * Initialize database
  *
  * @return void
  */
 protected function _initDatabase()
 {
     $this->bootstrap('db');
     Issues_Model_Mapper_DbAbstract::setDefaultAdapter($this->getResource('db'));
 }