Exemplo n.º 1
0
 /**
  * Summary accounting of the query time
  *
  * @param float $aStartTime        //start measuring time
  * @param float $aNameAdapterDB    //DB adapter
  * @return string
  */
 static function profilerTotalReport2Html($aStartTime, $aNameAdapterDB)
 {
     $_resultProfiler = '';
     //--------------------------
     // Получим признак авторизации администратора
     $auth = Zend_Auth::getInstance();
     $identity = $auth->getIdentity();
     $isAdmin = $identity && $identity->user_type == 'administrator';
     //Получим данные конфигурации Profiler
     $config = Zend_Registry::get('config');
     // Получим признак включения профайлера
     $profilerEnable = (bool) $config['profiler']['runtime']['enable'];
     // Получим кол. записей инф. о быстродействии в сессиии
     $rowsCount = (int) $config['profiler']['count']['rows'];
     // Если да, то пишем инф о быстродействиии в сессию
     // в переменную $Zend_Auth->results_profiler -> array()
     if ($profilerEnable && $isAdmin) {
         $_endTimeProfiler = microtime(1);
         // Получим инф. о времени работе скрипта
         $dispatchTime = number_format($_endTimeProfiler - $aStartTime, 5, '.', ' ');
         $durationStartApplication = number_format(Zend_Registry::get("Duration_StartApplication"), 5, '.', ' ');
         $durationBootstrap = number_format(Zend_Registry::get("Duration_Bootstrap"), 5, '.', ' ');
         $totalTime = number_format($dispatchTime + $durationStartApplication + $durationBootstrap, 5, '.', ' ');
         // Получим инф. о используемой памяти при работе скрипта
         $memoryUsage_StartIndexPHP = Zend_Registry::get("MemoryUsage_StartIndexPHP");
         $memoryUsage_StartApplication = Zend_Registry::get("MemoryUsage_StartApplication");
         $memoryUsage_Bootstrap = Zend_Registry::get("MemoryUsage_Bootstrap");
         // Максимально используемая память при выполнении скрипта
         $usePeakMemory = self::showPeakMemoryUsage('kb');
         // Используемая память в конце выполнения скрипта
         $useEndMemory = self::showMemoryUsage('kb');
         $_resultProfiler .= '<br /><br /><b>--- ' . self::Translate('Используемая память при выполнении скрипта') . ' ---</b><br /><br />';
         $_resultProfiler .= self::Translate("Максимальное кол. используемой памяти скриптом") . ": {$usePeakMemory} kb.";
         $_resultProfiler .= '<br /><br /><b>--- ' . self::Translate('Общее время выполнения скрипта') . ' ---</b><br /><br />';
         $_resultProfiler .= self::Translate("Общее время выполнения скрипта") . ": {$totalTime} sec.<br /><br />";
         $_resultProfiler .= $totalTime . " = (durationStartApplication({$durationStartApplication}) + durationBootstrap({$durationBootstrap}) + dispatchLoopTime({$dispatchTime}))" . " sec.<br /><br />";
         // Получим профайлер для базы данных
         $db = Zend_Registry::get('db');
         $dbProfiler = $db->getProfiler();
         if ($dbProfiler->getEnabled()) {
             $queriesTime = number_format(self::profilerSumTimeQueries('db'), 5, '.', ' ');
             $_resultProfiler .= self::Translate("Время выполнения запросов к базе данных") . ": {$queriesTime} sec.<br /><br />";
             //Суммарная информация о времени выполнения запросов  к базе данных
             $_resultProfiler .= self::profilerDbSumInfo2Html($aNameAdapterDB);
             //Информация о времени выполнения каждого запроса к базе данных
             $_resultProfiler .= self::profilerQueriesInfo2Html($aNameAdapterDB);
         }
         $_resultProfiler .= '<b>--- ' . Default_Plugin_SysBox::Translate('Информация о выполнении отдельных частей скрипта') . ' ---</b><br /><br />';
         $_resultProfiler .= self::Translate("Кол. используемой памяти вначале скрипта") . ": {$memoryUsage_StartIndexPHP} kb.<br /><br />";
         $_resultProfiler .= self::Translate("Время выполнения") . "  (index.php + new Zend_Application): {$durationStartApplication} sec.<br />";
         $_resultProfiler .= self::Translate("Кол. используемой памяти после") . " (new Zend_Application): {$memoryUsage_StartApplication} kb.<br /><br />";
         $_resultProfiler .= self::Translate("Время выполнения") . "  (Bootstrap): {$durationBootstrap} sec.<br />";
         $_resultProfiler .= self::Translate("Кол. используемой памяти после") . " (Bootstrap): {$memoryUsage_Bootstrap} kb.<br /><br />";
         //Получим инф. о действии контроллера
         $front = Zend_Controller_Front::getInstance();
         $request = $front->getRequest();
         $module = $request->getModuleName();
         $controller = $request->getControllerName();
         $action = $request->getActionName();
         $strRequest = "{$module}/{$controller}/{$action}";
         //Определим нужно ли обновлять инф. о профайлере в сессии
         if ($strRequest !== 'admin/tools/profiler' && $strRequest !== 'admin/tools/clearhist') {
             //Получим информацию о выполнении скрипта
             $infoProfiler = Zend_Registry::get("Result_Profiler");
             $_resultProfiler .= $infoProfiler;
             $_resultProfiler .= self::Translate("Кол. используемой памяти в конце скрипта") . ": {$useEndMemory} kb.";
             // Очистим инф. о выполнении скрипта
             Zend_Registry::set("Result_Profiler", '');
             $Zend_Auth = Zend_Registry::get("Zend_Auth");
             if (!$Zend_Auth->results_profiler) {
                 $Zend_Auth->results_profiler = array();
             }
             $strRequestFrm = "<span style='color: green;'>{$strRequest}</span>";
             $totalTimeFrm = "<span style='color: green;'>{$totalTime}</span>";
             list($msec, $sec) = explode(" ", microtime());
             $msecs = explode('.', number_format($msec, 3, '.', ''));
             $currentTime = date('H:i:s', $sec) . '.' . $msecs[1];
             $currentTimeFrm = "<span style='color: green;'>{$currentTime}</span>";
             $key = 'Tm' . ': ' . $currentTimeFrm . ' ' . 'Req' . ': ' . $strRequestFrm . ' ' . 'Rtime' . ': ' . $totalTimeFrm . ' sec.';
             $results_profiler = $Zend_Auth->results_profiler;
             // Ограничим число записей
             $count = count($results_profiler);
             if ($count == $rowsCount) {
                 array_shift($results_profiler);
             }
             // Запомним результат
             $results_profiler[$key] = $_resultProfiler;
             $Zend_Auth->results_profiler = $results_profiler;
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Constructor
  * 
  * @param array $params
  */
 public function __construct($params)
 {
     $this->_schema = $params['schema'] ? $params['schema'] : '';
     $this->_table = $params['table'];
     $this->_fieldKey1 = $params['fieldKey1'];
     $this->_fieldKey2 = $params['fieldKey2'];
     $this->_id = (int) $params['id'] ? $params['id'] : 0;
     if (isset($params['adapter'])) {
         $this->_adapter = $params['adapter'];
     } else {
         // Если адаптер не задан, пробуем подключить адаптер заданный по умолчанию для Zend_Db_Table
         $adapter = Zend_Db_Table::getDefaultAdapter();
         // Если адаптер по умолчанию не задан выбрасываем исключение
         if ($adapter == null) {
             throw new Exception(Default_Plugin_SysBox::Translate('Адаптер базы данных, заданный по умолчанию не был найден'));
         }
     }
 }
Exemplo n.º 3
0
 function getSize()
 {
     if (isset($_SERVER["CONTENT_LENGTH"])) {
         return (int) $_SERVER["CONTENT_LENGTH"];
     } else {
         throw new Exception(Default_Plugin_SysBox::Translate('Длина, полученного содержимого слишком большая.'));
     }
 }
Exemplo n.º 4
0
 /**
  * Initialization Log, Search, KCFinder
  *
  * @return void
  */
 protected function _initLog()
 {
     $params = array();
     //------------------
     $_startTime = microtime(1);
     //Получим конфигурацию
     $config = $this->_options;
     //----- Create Zend_Log object -----
     $columnMapping = array('ts' => 'timestamp', 'msg' => 'message', 'pr' => 'priority', 'pr_name' => 'priorityName');
     $countMsg = $config['logging']['log']['max_rows'];
     $countEx = $config['logging']['exeption']['max_rows'];
     $countStat = $config['logging']['statistics']['max_rows'];
     // Get DB
     $db = Zend_Registry::get('db');
     // Set params
     $params['db'] = $db;
     $params['columnMap'] = $columnMapping;
     // Create writer for DB
     $params['table'] = 'log_msg';
     $params['max_rows'] = $countMsg;
     $writerMsg = new Default_Model_Log($params);
     $params['table'] = 'log_error';
     $params['max_rows'] = $countEx;
     $writerEx = new Default_Model_Log($params);
     $params['table'] = 'log_stat';
     $params['max_rows'] = $countStat;
     $writerStat = new Default_Model_Log($params);
     // Create logers
     $logMsg = new Zend_Log($writerMsg);
     $logEx = new Zend_Log($writerEx);
     $logStat = new Zend_Log($writerStat);
     // Adding new priorities for the $logMsg
     $logMsg->addPriority('LOGIN_OK', 8);
     $logMsg->addPriority('LOGIN_ERR', 9);
     $logMsg->addPriority('LOGOUT', 10);
     $logMsg->addPriority('REG_OK', 11);
     $logMsg->addPriority('REG_ERR', 12);
     $logMsg->addPriority('DETAILS_OK', 13);
     $logMsg->addPriority('FETCHPASS_COMPLETE_OK', 14);
     $logMsg->addPriority('FETCHPASS_COMPLETE_ERR', 15);
     $logMsg->addPriority('FETCHPASS_CONFIRM_OK', 16);
     $logMsg->addPriority('FETCHPASS_CONFIRM_ERR', 17);
     $logMsg->addPriority('MAIL_OK', 18);
     $logMsg->addPriority('MAIL_ERR', 19);
     $logMsg->addPriority('DB_SAVE_ERR', 20);
     $logMsg->addPriority('DB_DELETE_ERR', 21);
     $logMsg->addPriority('POST_EDIT', 22);
     $logMsg->addPriority('POST_SET_STATUS', 23);
     $logMsg->addPriority('ADMIN_POST_EDIT', 24);
     $logMsg->addPriority('ADMIN_ROW_UPDATE', 25);
     $logMsg->addPriority('ADMIN_ROW_INSERT', 26);
     $logMsg->addPriority('ADMIN_ROW_DELETE', 27);
     $logMsg->addPriority('MY_MSG', 28);
     // Adding new priorities for the $logStat
     $logStat->addPriority('LOGIN_OK', 8);
     $logStat->addPriority('LOGIN_ERR', 9);
     $logStat->addPriority('MAIL_OK', 10);
     $logStat->addPriority('FETCHPASS_COMPLETE_OK', 11);
     $logStat->addPriority('FETCHPASS_COMPLETE_ERR', 12);
     $logStat->addPriority('FETCHPASS_CONFIRM_OK', 13);
     $logStat->addPriority('FETCHPASS_CONFIRM_ERR', 14);
     $logStat->addPriority('POST_OPEN', 15);
     $logStat->addPriority('VIDEO_PLAY', 16);
     $logStat->addPriority('AUDIO_PLAY', 17);
     $emailParams = $config['logging']['email'];
     if ($emailParams['send']) {
         $mail = Default_Plugin_SysBox::createMail($emailParams);
         $writer = new Zend_Log_Writer_Mail($mail);
         $my_request = Default_Plugin_SysBox::getUrlRequest();
         if (!$emailParams['subject']) {
             $writer->setSubjectPrependText('Errors request - ' . $my_request);
         }
         $writer->addFilter(Zend_Log::EMERG);
         $writer->addFilter(Zend_Log::ALERT);
         $writer->addFilter(Zend_Log::CRIT);
         $writer->addFilter(Zend_Log::ERR);
         $logger->addWriter($writer);
     }
     // Save to Registry
     Zend_Registry::set("Zend_Log", $logMsg);
     Zend_Registry::set("Zend_LogEx", $logEx);
     Zend_Registry::set("Zend_LogStat", $logStat);
     // Remember in the session array of search results
     $Zend_Auth = Zend_Registry::get("Zend_Auth");
     if (!$Zend_Auth->search) {
         $Zend_Auth->search = array();
     }
     //------------ Configure default search -------------
     // Establish a query analyzer in the coding Utf8
     Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
     //------ Initialization file manager -------------
     Default_Plugin_SysBox::iniKCFinder();
     //---- Defining script execution time ----
     $infoProfiler = Default_Plugin_SysBox::Translate("Время выполнения") . " Bootstrap_initLog(): ";
     Default_Plugin_SysBox::profilerTime2Registry($_startTime, $infoProfiler);
 }