Пример #1
0
 public function onApplicationEnd(Message $message)
 {
     $files = \MicroLoader::getFiles();
     $forStore = [];
     foreach ($files as $class => $file) {
         if (\substr($class, 0, 6) === 'Micro\\') {
             $forStore[$class] = $file;
         }
     }
     \file_put_contents(config('micro_debug.handlers.performance'), "<?php\nreturn " . \var_export($forStore, \true) . ";", \LOCK_EX);
 }
Пример #2
0
 public function after(ResponseInterface $response)
 {
     if (config('micro_debug.handlers.fire_php')) {
         $db = \app('db');
         if ($db) {
             $profiler = $db->getProfiler();
             if ($profiler->getEnabled()) {
                 $totalTime = $profiler->getTotalElapsedSecs();
                 $queryCount = $profiler->getTotalNumQueries();
                 $longestTime = 0;
                 $longestQuery = \null;
                 $total = sprintf('%.6f', microtime(\true) - $_SERVER['REQUEST_TIME_FLOAT']);
                 $label = 'Executed ' . $queryCount . ' queries in ' . sprintf('%.6f', $totalTime) . ' seconds. (' . ($total ? \round($totalTime / $total * 100, 2) : 0) . '%)';
                 $table = [];
                 $table[] = ['Time', 'Event', 'Parameters'];
                 if ($profiler->getQueryProfiles()) {
                     foreach ($profiler->getQueryProfiles() as $k => $query) {
                         if ($query->getElapsedSecs() > $longestTime) {
                             $longestTime = $query->getElapsedSecs();
                             $longestQuery = $k;
                         }
                     }
                     foreach ($profiler->getQueryProfiles() as $k => $query) {
                         $table[] = [\sprintf('%.6f', $query->getElapsedSecs()) . ($k == $longestQuery ? ' !!!' : ''), $query->getQuery(), ($params = $query->getQueryParams()) ? $params : \null];
                     }
                 }
                 FirePHP\FirePHP::getInstance()->table('DB - ' . $label, $table);
             }
         }
     }
     if (\config('micro_debug.handlers.dev_tools')) {
         if ($response instanceof HtmlResponse) {
             $body = $response->getBody();
             if ($body->isSeekable()) {
                 $body->rewind();
             }
             $b = $body->getContents();
             $b = explode('</body>', $b);
             $b[0] .= str_replace(array("\n", "\t", "\r"), "", $this->view->render()) . '</body>';
             $response->withBody(new TempStream(implode('', $b)));
         }
     }
     if (($fileForCache = \config('micro_debug.handlers.performance')) !== \null) {
         $forStore = [];
         foreach (\MicroLoader::getFiles() as $class => $file) {
             if (\substr($class, 0, 6) === 'Micro\\') {
                 $forStore[$class] = $file;
             }
         }
         \file_put_contents($fileForCache, "<?php\nreturn " . \var_export($forStore, \true) . ";", \LOCK_EX);
     }
     return $response;
 }