示例#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
<?php

chdir(dirname(__DIR__));
include 'library/Micro/autoload.php';
if (is_file($composer = 'vendor/autoload.php')) {
    include $composer;
}
MicroLoader::register();
示例#3
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;
 }
示例#4
0
<?php

chdir(dirname(__DIR__));
putenv('APP_ENV=development');
include 'library/Micro/autoload.php';
if (is_file($composer = 'vendor/autoload.php')) {
    include $composer;
}
MicroLoader::register();
if (is_file($classes = 'data/classes.php') === \true) {
    MicroLoader::setFiles(include $classes);
}
if (env('development')) {
    error_reporting(E_ALL | E_NOTICE);
    ini_set('display_errors', 1);
} else {
    error_reporting(0);
    ini_set('display_errors', 0);
}
try {
    ob_start('ob_gzhandler') || ob_start();
    $app = (include 'application/start.php');
    $app->run();
} catch (\Exception $e) {
    if (env('development')) {
        echo $e->getMessage();
    }
}
示例#5
0
<?php

use Micro\Application\Application;
use Micro\Application\Utils;
$config = [];
foreach (glob('{application/config/*.php,application/config/packages/*.php}', GLOB_BRACE) as $file) {
    $config = Utils::merge($config, include $file);
}
if (isset($config['packages'])) {
    MicroLoader::addPath($config['packages']);
}
$app = new Application($config);
$app->registerDefaultServices();
$app->get('router')->mapFromConfig()->loadDefaultRoutes();
return $app;
示例#6
0
 public function marshalConfigKeys()
 {
     $config = $this->container->get('config');
     $middlewares = $config->get('middleware', []);
     if (!empty($middlewares)) {
         foreach ($middlewares as $middleware) {
             if (is_array($middleware)) {
                 $this->add($middleware[0], $middleware[1]);
             } else {
                 $this->add($middleware);
             }
         }
     }
     $dependencies = $config->get('dependencies', []);
     if (!empty($dependencies)) {
         $this->container->configure($dependencies);
     }
     $files = $config->get('microloader.files', []);
     if (!empty($files)) {
         \MicroLoader::addFiles($files);
     }
     $session = $config->get('session', []);
     if (!empty($session)) {
         Session::register($session);
     }
 }